内容正文:
第6章 指 针
指针基础知识
任务一
数组指针变量的说明和使用
任务二
函数指针变量
任务三
任务一 指针基础知识
阶段1 指针简介
阶段2 指针变量的类型说明
阶段3 指针变量的赋值
阶段4 指针变量的运算
阶段1 指针简介
对于一个内存单元来说,单元的地址即为指针,其中存放的数据才是该单元的内容。在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。
阶段2 指针变量的类型说明
对指针变量的类型说明包括3个内容:
(1)指针类型说明,即定义变量为一个指针变量;
(2)指针变量名;
(3)变量值(指针)所指向的变量的数据类型。
其一般形式为:
类型说明符 *变量名;
阶段3 指针变量的赋值
C语言中提供了地址运算符&来表示变量的地址,其一般形式为:
& 变量名;
如&a表示变量a的地址,&b表示变量b的地址。变量本身必须预先说明。
阶段4 指针变量的运算
指针变量可以进行某些运算,但其运算的种类是有限的,只能进行赋值运算和部分算术运算及关系运算。
一.指针运算符
1.取地址运算符&
2.取内容运算符*
阶段4 指针变量的运算
二.指针变量的运算
1.赋值运算
2.加减算术运算
任务二 函数定义的相关知识
阶段1 数组指针变量简介
阶段2 数组名和数组指针变量作
函数参数
阶段3 指向多维数组的指针变量
阶段4 使用字符串指针变量与字
符数组的区别
阶段1 数组指针变量简介
一个指针变量既可以指向一个数组,也可以指向一个数组元素, 可把数组名或第一个元素的地址赋予它。
阶段2 数组名和数组指针变量作
函数参数
数组名就是数组的首地址,实参向形参传送数组名实际上就是传送数组的地址,形参得到该地址后也指向同一数组。这就好像同一件物品有两个彼此不同的名称一样。同样,指针变量的值也是地址,数组指针变量的值即为数组的首地址,当然也可作为函数的参数使用。
阶段3 指向多维数组的指针变量
一.多维数组地址的表示方法
二.多维数组的指针变量
阶段4 使用字符串指针变量与字
符数组的区别
用字符数组和字符指针变量都可实现字符串的存储和运算。 但是两者是有区别的,在使用时应注意以下3个问题:
1.字符串指针变量本身是一个变量,用于存放字符串的首地址。
2.对字符数组作初始化赋值,必须采用外部类型或静态类型。
3.字符串指针方式 与数组方式的区别。
任务三 函数指针变量
阶段1 函数指针变量简介
阶段2 指针型函数
阶段3 main函数的参数
阶段4 指向指针的指针变量
阶段1 函数指针变量简介
函数指针变量定义的一般形式为:
类型说明符(*指针变量名)();
其中,“类型说明符”表示被指函数的返回值的类型,“(*指针变量名)”表示“*”后面的变量是定义的指针变量,最后的空括号表示指针变量所指的是一个函数。
阶段2 指针型函数
在C语言中允许一个函数的返回值是一个指针(即地址), 这种返回指针值的函数称为指针型函数。
定义指针型函数的一般形式为:
类型说明符 *函数名(形参表)
{
…/*函数体*/
}
阶段3 main函数的参数
C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为:main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。
阶段4 指向指针的指针变量
向指针的指针变量说明的一般形式为:
类型说明符** 指针变量名;
例如: int ** pp; 表示pp是一个指针变量,它指向另一个指针变量, 而这个指针变量指向一个整型量。
$$