指 针
1、运算符" & ":获取变量地址,操作数必须是变量;
&右边必须有一个明确的变量,才能够取地址。
int i = 0;
int p;
p = (int) & i;
printf ("%p",p);
printf ("%p",&i);
2、指针:就是保存地址的变量
int i;
int* p = &i; //把变量i的地址传给p
int* p,q;
int *p,q; //两种p的申明方式都可以
void f(int *p); //在被调用的时候得到某个变量的地址
int i=0;f(&i); //在函数里面可以通过这个指针访问外面这个i
3、函数参数表中的数组实际上是指针
sizeof(a)==sizeof(int*)
int a[]=int *a;
数组变量本身就是特殊的指针,数组本身表达地址;所以
int a[10];
int *p = a; //取地址无需用"&"
a == &a[0];
但数组的单元表达的是变量,需要用“&”取地址;
p[0] == a[0]; //“[]”运算符可以对数组做,也可以对指针做
*a = 25; //"*"运算符可以对指针做,也可以对数组做
数组变量是const的指针,所以不能被赋值;
int a[] = ... ;
int* const a= ... ;