重点:
定义变量:按类型分配空间
类型 变量名;
类型 数组名;
初始化:
引用变量:引用内容
1、自身内容: 变量名; *地址
a
数组名[下标]
1、指针与变量的关系:
1、见源代码
2、指针与数组的关系:
2.1指针与一维普通数组
2.2指针数组:专门用于存放指针的数组
类型* 数组名[长度] eg: int* buf[10]
引用元素:数组名[下标法]
2.3指针与二维数组: int buf[10] int buf1[3][4]
一维数组名:指向是该行第一列
buf+0第一列 buf+1第二列
二维数组名:指向是某一行的地址
1、buf1+0第一行 buf1+1 第二行 buf1行地址
2、由于buf1[0] buf1[1] buf1[2]三个一维数组成的一个int buf1[3][10]的二维数组
所所以buf1[0]等价一维数组的名字(列)
buf1[0]+0第一行的第一列 buf1[0]+1第一行的 第二列的地址
3、引用内容:必须确定到行和列
buf1[2][2],*(buf1[2]+2),*(*(buf1+2)+2),(*(buf1+2))[2]
二维指针变量: 类型 (*指针变量)[列]
2.4指针与结构体变量的关系:
结构体:自定义类型
结构体变量:分配空间按类型分配
2.4.1定义结构体指针变量: struct 类型* 变量名
2.4.2引用成员:
变量.成员;
指针->成员;
(*指针).成员;
注:指针变量必须指向一个元素
优先级:
. > * > 运算符 > 逻辑运算符 > 赋值
2.4.3结构体指针数组:
类型* 数组名[长度];
struct people* buf[10];