&运算符取得变量的地址
1.scanf(“%d”,&i)
- 获得变量的地址,它的操作数必须是变量
- int i;printf(“%x”,&i);
- 地址的大小是否与int相同取决于编译器
- int i;printf(“%p”,&i);(地址和整数不是永远相同)
- 如果后面是变量,则不能用取地址
- &(a+b)
- &(a++)
- &(++b)
编译结果是error
其中&a=a=&a[0]
指针变量就是记录地址的变量
int i
int*p=&i ;
int* p,q;//*可以靠近int也可以靠近p都是表示*p
int *p,q;
指针-point-p
可以将i想成居民,地址想成住的房子,p想成门牌号即p是保存i的地址
- 变量的值是内存的地址
- 普通变量的值是实际的值
- 指针变量的值是具有实际值变量的地址
作为参数的指针 - void f(int*p);
- 再被调用的时候得到了某个变量的地址
- int i=0;f(&i);
- 在函数里面可以通过这个指针访问外面的i