1、取地址运算:&运算符取得变量的地址
scanf("%d",&i); //里的&——获得变量的地址,它的操作数必须是变量。
int i; printf("%x",&i); //%x 是以十六进制形式输出指针的值(即内存地址) printf("%p",&i); //%p 是输出指针的值(即内存地址) //64位下结果不一样。一般用%p。
地址的大小是否与int相同取决于编译器。
&不能对没有地址的东西取地址
&(a+b) ? &(a++)? &(++a)?
2、指针:指针变量就是记录地址(或保存地址)的变量
int i; int* p=&i;
int* p,q; //p是指针变量,q不是
int *p,q; //p是指针变量,q不是。
变量的值是内存的地址
(1)普通变量的值是实际的值。
(2)指针变量的值是具有实际值的变量的地址
作为参数的指针
void f(int *p);