10.1.内存的基本单位是字节,每个字节都有相应的编号,称作地址或指针。借助于指针,C语言可以直接访问内存,从而对硬件进行操作。
10.2.变量所占用内存的大小由其数据类型决定,变量所占用内存的第1个字节的地址称作该变量的地址或指针,表为:
&变量名
10.3.指针所指向数据的类型称作该指针的基类型,它所指向数据用
*指针
访问,可作为普通变量使用。
10.4.指针本身也是一种数据类型,占用2字节内存,可作为无符号整数输出和参与关系运算、逻辑运算,但指针的其它运算不同于整数运算。
10.5.指针运算可简单地分为以下五类:
(1)单目运算有六个:!、&、*、++、--、sizeof。
(2)双目运算有四种:-、关系运算、逻辑运算、赋值运算。
(3)指针与整数间的运算有三个:+、-、[ ]。
(4)强制类型转换运算:( )。
(5)结构体成员运算:->。
其中,+、-、++、--、+=、-=均以基类型数据为基本单位。
10.6.一维数组的数组名可作为指针调用,它指向数组中的第一个元素,以数组中元素的类型为基类型。数组名的值不可修改,且sizeof(数组名)的值为整个数组所占内存的字节数。
10.7.对于一维数组来说,
基址+i 和 &基址[i]
均指向数组中的第i+1个元素(i>=0);
*(基址+i) 和 基址[i]
均表示数组中的第i+1个元素(i>=0)。
10.8.n维数组可看作是以n-1维数组为元素的一维数组,数组名可看作是指向数组中的第一个n-1维数组的指针。
10.9.下标变量可作为实参,但不可作为形参,实际上,它被误认为指针。
10.10.※ C源程序经编译后,系统为源程序中的每个函数均分配一个入口地址,称作函数指针。在C源程序中,函数指针用函数名表示,其值不可修改。以函数指针为值的变量称作函数指针变量,其定义格式为:
函数类型名(*函数指针变量名)( );
可用下述格式代替函数名:
(*函数指针)
10.11.※[1] 函数返回值可以是指针,定义函数的一般格式为:
基类型 *函数名(形参列表){函数体}
10.12.不允许将非0数直接赋给指针变量,须做强制转换。当指针变量的值为0时,称之为空指针。
10.13.※ 以指针为元素的数组称作指针数组。
10.14.※ 以指针为基类型的指针称作指向指针的指针,以指向指针的指针为值的变量称作指向指针的指针变量,其定义格式为:
存储方式关键字 基类型名 **指向指针的指针变量名
10.15.※ C源程序经编译、连接所得目标程序(exe文件)可作为DOS外部命令使用,命令行的一般式为:
路径\目标程序文件名 参数1 参数2 … 参数n
10.16.※ C主函数main可带两个形参,前者为int型,用于接收命令行中字符串个数,后者为字符串指针数组,用于接收命令行中各字符串。带参主函数的格式为:
void main(int 形参1,char *形参2[ ]) {函数体}
其中,
形参1=参数个数+1 |
形参2[0]="路径\目标程序文件名" |
形参2[i]="参数i",i=1,2,…,n |
[1] 标注※表示此部分为非考试内容。