C | C++ | |
& | 取地址 | 取地址 |
位运算 | 位运算 | |
两个&表示与 | 两个&表示与 | |
- | 引用 |
1.C++比C多了一种新特性,即引用;如下语句,C语言中会报错,C++中不会,因为C++中这里表示引用:
void fun2(int &p)
C语言中汇报错是因为&p不管是那种用法都不能作为左值;
2.C语言中按指针传递参数的例子如下:
#include<stdio.h>
void fun1(int *p)
{
*p = 2;
printf("p is %d\n", *p);
}
int main()
{
int a = 1;
int *ptr = &a;
printf("ptr is %d\n", *ptr);
fun1(&a);//fun1(ptr);运行结果也是一样的
printf("ptr is %d\n", *ptr);
getchar();
return 0;
}
运行结果如下:
3.C++中&作为引用的例子如下:
#include<stdio.h>
void fun2(int &p)
{
p = 2;
printf("p is %d\n", p);
}
int main()
{
int a = 1;
int *ptr = &a;
printf("ptr is %d\n", *ptr);
fun2(*ptr);
printf("ptr is %d\n", *ptr);
getchar();
return 0;
}
运行结果和上面的一样,按运用传递参数,传递的是变量本身,不是变量的拷贝。