目录
指针和一维数组的结合:
int *p 如果有一个数组num[10]={1,2,3,4,5,6};可以直接初始化
eg:int *p=num。
访问数组:
①:数组名[索引] ②:*(p+i) *号取地址内容(p+i为地址偏移) ③:p[i] p和num都是指向数组首地址
*(p+i)等价于p[i]
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
指针与二维数组结合:
int (*p)[i];(也叫行指针) 二维数组可以看成多个一维数组组成。
行指针:
行指针+1代表偏移一行,如(*(p+1))[3]代表第2行第4列
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
访问二维数组:双重for循环
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
指针数组:
int *p[5],数组中的每个元素都是指针(注意没加括号) 占4*5=20字节内存
字符指针数组:
char *p[3]={“abc”,“def”,“ghi”};相当于二维字符数组char arry[3][4]={“abc”,“def”,“ghi”};(3个字符数组组成)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
结构体指针:
USER_T *p=&user; user为结构体变量 因为结构体指针是取地址的,对地址进行操作,因此作为函数参数是按地址传递。 结构体指针在32位系统占用4字节内存
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
结构体数组指针:
USER_T *p=user; user为结构体数组名
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>