52指针变量的定义与引用 52.1指针变量的定义 指针变量定义的一般形式为: 类型名来指针变量名 其中“类型名”表示指针变量所指向的变量的类 型,“米”表示定义的是指针变量。 例如: int xpl 注意,一个指针变量只能指向同一类型的数据 指针变量同普通变量一样,具有变量类型、变量名、 变量值三要素,但是,指针变量存放的是所指向的某 个变量的地址值,并且只能是类型说明所规定的变量 类型的地址。而普通变量存放的是该变量本身的值
5.2 指针变量的定义与引用 5.2.1指针变量的定义 指针变量定义的一般形式为: 类型名 *指针变量名 其中“类型名”表示指针变量所指向的变量的类 型, “*”表示定义的是指针变量。 例如: int *p1; 注意,一个指针变量只能指向同一类型的数据。 指针变量同普通变量一样,具有变量类型、变量名、 变量值三要素,但是,指针变量存放的是所指向的某 个变量的地址值,并且只能是类型说明所规定的变量 类型的地址。而普通变量存放的是该变量本身的值
522指针变量的引用 1指针变量的初始化 指针变量中只能存放地址,不能将一个整型量(或任何其它非 地址类型的数据)赋 运 ,卺的作用是取量所罟角的丙存单芫的蓄地址。萁 般形式为: &变量名 如&x表示取变量x的地址,&y表示取变量y的地址。 图52例如,以下定义表示将指针变量p初始化为变量x的地址。参考 intx: int *p=&x; X=100; 注意: 变量x的类型必须和指针变量p的类型一致,例如以下定 义是非法的。 float y int xp=&y 因为p为整型指针变量,y为实型变量,类型不一致
5.2.2 指针变量的引用 1.指针变量的初始化 指针变量中只能存放地址,不能将一个整型量(或任何其它非 地址类型的数据)赋给一个指针变量。为此,C语言提供了取地址 运算符“&” ,它的作用是取变量所占用的内存单元的首地址。其一 般形式为: &变量名; 如&x表示取变量x的地址,&y表示取变量y的地址。 例如,以下定义表示将指针变量p初始化为变量x的地址。参考 图5-3。 int x; int *p = &x; x = 100; 注意: (1)变量x的类型必须和指针变量p的类型一致,例如以下定 义是非法的。 float y; int *p = &y; 因为p为整型指针变量,y为实型变量,类型不一致
2)不允许把一个指针变量初始化为一个常数,下面的 对指针变量p初始化也是非法的 int*p=1000; 以上是在定义指针变量的同时对其进行了初始化,也可以 先定乂指针变量,然后再通过赋值的方式对其初始化,例 如 intx int *p; p=&x; 注意,被赋值的指针变量前不能再加“*”说明符,如写 p=& X;定 还可以将指针变量初始化为空值NUL。例如: NULL 这时p初始化为一个空值,表示它不指向任何内存单元
(2)不允许把一个指针变量初始化为一个常数,下面的 对指针变量p初始化也是非法的。 int *p = 1000; 以上是在定义指针变量的同时对其进行了初始化,也可以 先定义指针变量,然后再通过赋值的方式对其初始化,例 如: int x; int *p; p= &x; 注意,被赋值的指针变量前不能再加“*”说明符,如写 为 *p = &x;是非法的。 还可以将指针变量初始化为空值NULL。例如: p = NULL; 这时p初始化为一个空值,表示它不指向任何内存单元
2使用指针访问变量 C语言提供了指针运算符“*”(也称间接访问 运算符) “*”作为运算符在表达式中出现 作用于指针变量上时,用来表示指针变量所指的 变量,含义是取出指针变量地址中存放的内容。 需要注意的是指针运算符“*”和指针变量说明 中的指钍类型名中的“米”不是一回事。在指钍 变量说明中,“*”是类型名,表示其后的变量 是指针类型。而表达式中出现的“米”则是 指针运算符用以表示指针变量所指的变量。 例如,假设有以下定义 int i=200. X. int *kip; p=&i
2.使用指针访问变量 C语言提供了指针运算符“*”(也称间接访问 运算符),当“*”作为运算符在表达式中出现, 作用于指针变量上时,用来表示指针变量所指的 变量,含义是取出指针变量地址中存放的内容。 需要注意的是指针运算符“*”和指针变量说明 中的指针类型名中的“*”不是一回事。在指针 变量说明中, “*”是类型名,表示其后的变量 是指针类型。而表达式中出现的“*”则是一个 指针运算符用以表示指针变量所指的变量。 例如,假设有以下定义: int i=200, x; int *ip; ip = &i;