§92指针变量的定义和引用 、指针变量的定义形式: [存储类型]类型名*变量名 表示该变量为指向某类型变量的指针变量 如:int*p;(p为指向整型变量的指针) char*s;(s为指向字符型变量的指针) float*t;(t为指向浮点型变量的指针) c語醒设计
一、 指针变量的定义形式: 表示该变量为指向某类型变量的指针变量。 如: int p; (p为指向整型变量的指针) char *s;(s为指向字符型变量的指针) float *t;(t为指向浮点型变量的指针) [存储类型] 类型名 变量名 §9.2 指针变量的定义和引用
指针变量的引用方式: *变量名—表示所指变量的值。 变量名-表示指向变量的指针(地址)。 A int*p; char *S; float*t =a:*t=3.6 但 p-ptl,-- 并不代表p=6 它代表的是地址+1 重要概念: 指针变量也有各种类型(如上面所示),但指针变 量的值只能是整型值。 c語醒设计
重要概念: 指针变量也有各种类型(如上面所示),但指针变 量的值只能是整型值。 指针变量的引用方式: *变量名----表示所指变量的值。 变量名----表示指向变量的指针(地址)。 若 int *p; char *s; float *t; *p=5; *s=a; *t=3.6; 但p=p+1;----------------并不代表p=6 它代表的是地址+1
例:若有:int*p; 且 设p的地址为2000,则p+1→2002 若有:foat*t; 且:*t=3.6; 设t的地址为2000,则t+1→2004 若有:char*s; 且:*s=a 设s的地址为2000,则s+1→2001 c語醒设计
若有:float *t; 且:*t=3.6; 设t的地址为2000,则t+12004 例:若有:int *p; 且:*p=5; 设p的地址为2000,则p+12002 若有:char *s; 且:*s=a; 设s的地址为2000,则s+12001
二、引用指针变量 将一个变量的地址(指针)赋给一个指针变量, 用取地址运算符:& Int 1,1,*p; 如果将整数赋给地址量p=1000编译会 提出警告性错误,但程序还是能正常运行, 这是很危险的。 (只能这样赋值:*p=1000) c語醒设计
二、引用指针变量 将一个变量的地址(指针)赋给一个指针变量, 用取地址运算符:& int i, j, p; i=3; p=&i; 如果将整数赋给地址量p=1000;编译会 提出警告性错误,但程序还是能正常运行, 这是很危险的。 (只能这样赋值: p=1000;)
存取指针变量所指向变量(目标变量)的值: 用指针运算符*即:*p为i *,&为同级运算符,结合性自右至左 则当*&或&*在一起时,具有抵消作用 如上例: Int l,*p =3 p=&i 则:p*&相当于p=i 请思考:若对指针变量进行取址运算, &p会有什么结果? 程序示例 c語醒设计
存取指针变量所指向变量(目标变量)的值: 用指针运算符*, 即:*p 为 i , &为同级运算符,结合性自右至左。 则当&或&在一起时,具有抵消作用 则:p=&i相当于p=i 如上例: int i, p i=3 p=&i 程序示例 若对指针变量进行取址运算, &p会有什么结果? 请思考: