指针
为什么Java不能直接取地址?
&运算符
//前三个的值都一样的,都是表示数组的首地址
int a[10];
printf("%p\n", &a);
printf("%p\n", a);
printf("%p\n", &a[0]);
printf("%p\n", &a[1]);
指针
//*可以靠近int或变量名,效果都一样
//并不是说有int*这种类型,C语言并没有这种类型
int *p = &i;
int* p,q;
int *p,q;//和上面一句效果相同
指针与数组
数组和指针是存在某种联系的。
如果把一个数组传入函数,那这个函数的形参列表中的数组就是指针。
数组变量是特殊的指针,数组变量本身表达地址,所以:
- int a[10]; int *p = a; //无需使用&取地址