十一、指针

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);

3、指针的使用:指针有什么用呢?

4、指针与数组:为什么数组传进函数后的sizeof不对了?

5、指针与const:指针本身和所指的变量都可能是const

6、指针运算

7、动态内存分配

猜你喜欢

转载自www.cnblogs.com/Strugglinggirl/p/9046298.html
今日推荐