指针与变量的关系

一、定义变量

定义变量:按类型分配空间

        类型   变量名;

        类型   数组名;

二、指针和变量

1、引用变量:自身内容:变量名;   *地址

        数组名[下标]

三、指针与数组

1、指针与一维普通数组

指针数组:专门用于存放指针的数组

类型* 数组名[长度]         eg:int* buf[10]

引用元素:数组名[下标法]

2、指针与二维数组:int buf[10]   int buf[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]

4、二维指针变量:类型 (*指针变量)[列]

四、指针与结构体变量

1、结构体:自定义类型

2、结构体变量:分配空间按类型分配

3、定义结构体指针变量:struct 类型* 变量名

4、引用成员:

        变量.成员

        指针->成员;

        (*指针).成员;

注:指针变量必须指向一个元素

5、优先级:

. > * >运算符>逻辑运算符>赋值

6、结构体指针数组:

        类型* 数组名[长度]

        struct people* buf[10];

你可能感兴趣的:(理论)