基本使用
- 通过type *variable的方式,如int *i的方式定义指针
- 通过type array[num]的方式,如int a[10]的方式定义数组,数组名代表存储地址,对32位操作系统,地址为32位。
- 通过i=array的方式,将数组地址赋值给指针。
- 可以通过访问数组的方式进行数据写读,如a[5] = 6; x = a[6];
- 可以通过指针对某个地址进行数据写读,如*I = 6; x = *I; *(I+2) = 7; x = *(I+8);I[3]=6;x=I[7]这些方式
注意事项
- 如果指针没有做地址赋值的初始化,则对应的内存空间地址不确定,从地址空间读数据出来没有问题,如果写入数据空间地址,可能会导致程序崩溃。根据测试,如Keil工具会将没有赋值的指针赋值0地址。
- 如果指针访问产生越界,也可能导致程序崩溃。
高级应用:函数指针
int (*fp)(int,int); 的定义为函数指针;
int *fp(int,int); 的定义为普通函数,返回值为指针。
–END–