我们采用的教材 第4章 C/C++语言的纵向名词性扩充(1):指针 4.1 简单指针类型和指针量值(常量和变量) 4.1.1 变量的三层含义 -简单的C赋值语句: int a=10; 包含着变量的三层含义。 图4. 1变量的三层含义 变量的指针:就是用来存储变量值的若干字节内存的起始地址值 当定义一个变量时,该变量的值是可变的(之所以为变量的原因!),但该变量的指针(地址值)却是常量,即该变量在内存中的位置是确定的。 指针变量的引出: 当程序规模扩大,逻辑会变得复杂,这时用不同变量名就很麻烦,甚至是不可能。 需要定义另一个变量,这个变量的值是其它变量的地址值(指针)。 指针变量:值是另一个变量地址的变量,叫做指针变量。 指针变量是变量,它也有三层含义 和*是两个动词性的运算符。 运算符:计算出它作用其上的变量的地址。如对于图4.2中的情况,表达式a的值是2A6B。表达式p的值是304A。 如int* p; p=a; 此时p的值是2A6B。 (2) *运算符:计算出它作用其上的指针变量所指向的变量的值。 int a=10; int* p=a; printf(%d, *p); //输出 a的值10 语句printf(“%d”, *a);输出什么? (3) 和*运算符的关系 和*有互逆性。 考虑下面的顺序程序: int a=10; int* p=a; printf(%d, *p); //输出 a的值10 (3) 和*运算符的关系 *p 的含义是什么呢? *a的含义是什么呢? 4.1.4 指针和指针变量示例 指向简单类型变量的指针变量 例4. 1用指针变量间接使用它所指向的变量参与运算。 #includestdio.h void main() { int x1=10, x2=20, x3; int* p1=x1, *p2=x2, *p3=x3; //定义指针变量,并指向不同变量 x3=x1+x2; printf(\n%d %d\n, x3, *p3); *p3=*p1-*p2; //用指针变量实现变量的运算 printf(\n%d %d\n, x3, *p3); } 指向异类集合变量的指针变量 例4. 2用指向结构体变量的指针变量操作结构体变量。 #includestdio.h struct Student{ int id; char name[10]; float score[2]; }; void main() { Student LiHong; Student * P_Studeng=LiHong; printf(\n请输入学生编号:\n); scanf(%d, (*P_Studeng).id ); printf(\n请输入学生姓名:\n); scanf(%s,P_Studeng-name); printf(\n请输入2门成绩:\n); scanf(%f, (P_Studeng-score[0]));//通过指针变量操作结构体变量内的数组元素 scanf(%f,(P_Studeng-score[1])); printf(\n-----------输出信息----------------------\n); printf(\n%d, (*P_Studeng).id); printf(\n%s, P_Studeng-name); printf(\n%f %f\n,P_Studeng-score[0], P_Studeng-score[1]); } 指向共用体和枚举类型的指针变量的声明和引用方法完全相同。 -运算符 4.2同类集合变量——数组的指针和指针变量 数组的指针就是数组的起始地址。 4.2.1一维数组的指针和操作一维数组的指针变量 ——本质上是指向单个变量的指针变量 1.一维数组的存储结构——公理—一维数组的指针常量 令ANY代表任何一种已经定义的类型。m是已经定义的一个常量。 一维变量数组的定义形式是ANY one_dem[m]; one_dem是数组名,是常量。 这m个ANY型的变量(即数组的元素)one_dem[0],one_dem[1],…… one_dem[m-1]。 它们在内存中是连续存放的,如果设每个元素占用4字节内存,oen_dem数组需要4*m字节的连续内存。 4.2.1一维数组的指针和操作一维数组的指针变量 ——本质上是指向单个变量的指针变量 表达式one_dem[0]的值是one_dem[0]的地址,也就是one_dem[0]的起始地址; 表达式one_dem[1] 表达式(one_dem[1])-(one_dem[0])的值是4, 表达式
您可能关注的文档
最近下载
- 物理-四川省巴中市普通高中2022级(2025届)高三下学期“一诊”考试(巴中一诊)试题和答案.pdf VIP
- 2026人教版小学一年级上册数学期末考试3套试卷(打印版含答案解析).docx
- (2025)智慧物流产业园建设项目可行性研究报告(一).docx
- 《bim5d施工管理应用》课件 第3章 基于BIM的成本管理应用.pptx
- 标准图集-07S906-给水排水构筑物设计选用图.pdf VIP
- 《天然气开通委托书》.docx VIP
- 重症医学科护理工作个人年终总结4篇.docx VIP
- 《预制混凝土柱-钢梁混合结构技术规程》.pdf VIP
- DLT 5293-2013 电气装置安装工程 电气设备交接试验报告统一格式 汇总样表.xls VIP
- 中药产业创新人才培养平台建设与完善.docx
原创力文档

文档评论(0)