指针变量的定义和引用(精)
int *p1,*p2; float *q ; 合法标识符 指针变量本身的存储类型 指针的目标变量的数据类型 static char *name; 指针变量与其所指向的变量之间的关系
i_pointer 2000 变量i 3 *i_pointer i &i i=3; *i_pointer i_pointer *i_pointer=3
看出其地址。注意,这个地址并不是始终不变的,这 是由机器和操作系统来安排的,我们无法预先知道。
指针与地址的概念
在现实生活中,我们要给朋友写信,首先通过认识这个人得到 他的地址。但对于投递员来说,他通过投递到这个地址,找到 了这个人。
投递员
弋江区纬六路1号
寄信人
张三
根据C语言知识来说 对于寄信人来说:&张三——弋江区纬六路1号 对于投递员来说:*弋江区纬六路1号——张三 其中:“*”符号为取该地址下的内容
变量的指针和指向变量的指针变量
例3:输入两个整数,按先大后小的顺序输出。 main() { 程序运行中,指针变量p1,p2的指向变化如图 int a,b,*p1,*p2,*p; scanf(“%d%d”,&a,&b); p1=&a;p2=&b; if (a<b) {p=p1;p1=p2;p2=p;} printf(“\na=%d,b=%d\n”,a,b); printf(“max=%d,min=%d\n”,*p1,*p2); } 运行结果为: 输入:5 9 ↙ 输出:a=5,b=9 max=9,min=5
Hale Waihona Puke 指针与地址的概念例1:分析下题的输出结果: main() { int a,b,c; scanf(“%d,%d,%d”,&a,&b,&c); a=10;b=20; c=a+b; printf(“%d,%d”,c,&c,*(&c)); } 用一个变量来代替——指针变量
变量的指针和指向变量的指针变量
指针变量的定义: 一般形式: [存储类型] 例 数据类型 *指针名;
Pointer 指针 Argument 参数 declaration 声明 represent 表示 manipulate 处理
指针与地址的概念
在上机实验的时候,有没有同学曾经做过这样的试验: main() { int a,b,c; printf(“%d ,%d ,%d”,&a,&b,&c); } 运行结果为: ?
输入三个整数,按由小到大的顺序输出, 要求用指针实现
变量的指针和指向变量的指针变量
例2:通过指针变量访问整形变量。 main() { int a,b; int *p1,*p2; /*定义两个指针变量*/ a=100;b=50; p1=&a; p2=&b; /* p1指向a,p2指向b*/ printf(“%d,%d\n”,a,b); printf(“%d,%d\n”,*p1,*p2); } 运行结果: 100,50 100,50
指针变量的定义和引用
教学内容 应知指针的意义及使用 单个变量的指针应用 通过指针引用变量的意义
引例:曾经我们在学习变量的输入输出时学过以下 类似的例子 main() { int a,b,c; scanf(“%d,%d,%d”,&a,&b,&c); a=10;b=20; c=a+b; printf(“%d”,c); } 曾经说过: “&”符号为取地址符号,可以取得变量的地址。
定义指针后不经过赋值直接使用 指针与指向的数据类型不同 错用&和*
变量的存取方式有直接访问(通过变量的名 称访问变量)和间接访问(通过变量的指针访 问变量)两种 1. 变量的指针是变量的首地址 2. 指针变量用来存放变量的地址 指针变量的定义也必须要指定类型,表示指 针所要指向的变量数据类型 在使用指针变量之前,必须为其赋值,即使指 针变量指向某一个确定的值 &为取地址运算符,*为指针运算符(也叫取 值运算符)