1、C程序设计(第三版) http:/ 1第十章第十章C程序设计(第三版) http:/ 2l 主要内容主要内容10.1地址和指针的概念10.变量的指针和指向变量的 指针变量10.数组与指针 10.字符串与指针10.指向函数的指针10.返回指针值的函数10.指针数组和指向指针的指针10.8有关指针的数据类型和指针运算的小结C程序设计(第三版) http:/ 310.1地址和指针的概念内存区的每一个字节有一个编号,这就是 “地址 ” 。如果在程序中定义了一个变量,在对程序进行编译时,系统就会给这个变量分配内存单元。 .按变量地址存取变量值的方式称为 “直接访问 ”方式( ,);( ,); C程序设计
2、(第三版) http:/ 4C程序设计(第三版) http:/ 52. 另一种存取变量值的方式称为 “间接访问 ”的方式。即,将变量的地址存放在另一个变量中。在语言中,指针是一种特殊的变量,它是存放地址的。C程序设计(第三版) http:/ 6一个变量的地址称为该变量的 “指针 ”。例如,地址 2000是变量的指针。如果有一个变量专门用来存放另一变量的地址(即指针),则它称为 “指针变量 ”。上述的 i_pointer就是一个指针变量。指针和指针变量的定义:C程序设计(第三版) http:/ 710.2 变量的指针和指向变量的指针变量10. .1 定义一个指针变量定义指针变量的一般形式为基类型
3、 *指针变量名;C程序设计(第三版) http:/ 8下面都是合法的定义:float *pointer_; char *pointer_; 可以用赋值语句使一个指针变量得到另一个变量的地址,从而使它指向一个该变量。例如:pointer_;pointer_;C程序设计(第三版) http:/ 9在定义指针变量时要注意两点:(1)指针变量前面的 “*”,表示该变量的类型为指针型变量。例 : float *pointer_1;指针变量名是 pointer_1 ,而不是 * pointer_1 。 (2) 在定义指针变量时必须指定基类型。需要特别注意的是,只有整型变量的地址才能放到指向整型变量的指针变量中。下面的赋值是错误的 float a; int * pointer_1; pointer_1= C程序设计(第三版) http:/ 1010.2.2 指针变量的引用 注意 :指针变量中只能存放地址(指针),不要将一个整数(或任何其他非地址类型的数据)赋给一个指针变量。 例 10. 通过指针变量访问整型变量#include void main ( ) int ,;int *pointer_, *pointer_;pointer_; /*把变量的地址赋给 pointer_1 */