- 7
- 0
- 约1.1万字
- 约 32页
- 2016-11-27 发布于河南
- 举报
第07章 指针
7.1 地址作为数据值 7.1 地址作为数据值 7.2 指针变量 7.2.1 声明指针变量 7.2.1 声明指针变量 7.2.2有关指针的运算符 7.2.2有关指针的运算符 7.2.2有关指针的运算符 7.2.2有关指针的运算符 取地址运算及取内容运算*的优先级和结合性 优先级:高于算术运算符 结合性:右结合 练习:说出程序的输出结果 #includestdio.h main() { int a, b, *p; p=a; *p=5; p=b ; *p=10; printf(%d,%d,%d\n,a,b,*p); } 思考题: 有int a=9, *p1=a;说出下面表达式的含义 *p1、*p1、*a、p1、*p1、a 7.2.3 指针操作 7.2.3 指针操作 7.2.3 指针操作 7.2.4 指针作为函数参数 7.2.4 指针作为函数参数 7.3 数组与指针 7.3.2 函数、数组与指针 7.3.3 保护数组的内容(const的使用) 7.3.4 多维数组与指针 7.3.4 多维数组与指针 7.3.4 多维数组与指针 7.3.5 指向数组的指针 7.4 函数指针 7.4.2 函数指针用作函数参数 7.5 动态分配内存 7.6 指针数组和指针的指针 7.6.1 指针数组 7.6.2 指针的指针 一个指针变量存放的是其它指针变量的地址,这就是指向指针的指针(多级指针)。 二级指针的定义: 类型 **指针变量名 没有指针,变量只能直接访问;有了指针可以使用它来访问另一变量,这叫“间接访问”;有了指针的指针还可以使用它来访问一个指针进而访问另一变量,这叫“二级间址访问”。但级数愈多则难理解易混乱。 例如: void main() { char *name[]={Follow me,BASIC,Great Wall,Fortran,Computer design}; int i; char **p; for(i=0;i5;i++) { p=name+i; printf(%s\n,*p); } } 判断输出结果是什么: int **pp,*p[4],a=5,b=6; p=a;pp=p;p=b; printf(“%d,%d”,*p,**pp); * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 信息工程学院 iec.cugb.edu.cn 第7章 指针 指针(pointer)的概念就是地址的概念,所谓指针其实指的就是保存好的数据对象在内存的首地址。操作指针就是操作数据的地址。 指针是C语言的精华,是一个很重要的概念。正确而灵活的运用指针,可以有效的表示复杂的数据结构轻松处理数据、动态地使用内存、便捷的处理字符串,从而编写出简洁、紧凑、高效的程序代码。 7.1 地址作为数据值 7.2 指针变量 7.3 数组与指针 7.4 函数指针 7.5 动态分配内存 7.6 指针数组和指针的指针 左值的概念 在C语言中,任何一个指向能寻出数据的内存位置的表达式称为左值(lvalue)。只有左值可以出现在赋值表达式的左侧,如简单变量、数组元素等,它们的值是可以改变的。而常量和算术表达式均不是左值。 关于左值有以下的几条原则: (1)每个左值都存储在内存中,内存中的每一个字节都按顺序有一个相应的编号,相邻字节的编号相邻。内存的编号称为地址。因而每一个左值都有其内存地址。 (2)一旦声明左值,尽管它的内容(如变量的值)可以改变,但它的地址不变。 (3)因为所保存的数值类型不同,不同左值需要不同大小的内存。 (4)左值的地址本身也是数据,也可以在内存中进行操作和存储。 其中的第(4)条初看起来好像没有什么用处,但用于程序设计时会显示出其深远的意义。 变量的指针 变量的首地址保存 到内存中就成为变量 的指针。 例如 long a; 声明了一个长整型变量, 将以4个字节存储其值,假 定分配在地址为1000~1003的内存空间。变量a的首地址1000(可用a取得)本身也是一个数据值,是一个整数,也同样可以存储在内存中,比如把它存放在3500开始的4个字节中。虽然在3500~3503中存储的1000是一个普通的整数,但它具有特殊的含义,它代表了变量a存储的地址。一个数值在程序中究竟是一个普通整数还是一个地址,取决于存储该数值的变量的声明类型:如果声明的是一个普通整型变量,那么它存储的就是普通整型数;如果声明的是一个指针变量,那么它存储的就是另一个对象的地址。 图7-1 内
您可能关注的文档
最近下载
- 辽宁省沈阳市辽宁省实验中学2025-2026学年高一上学期12月月考语文试题.docx VIP
- 药事法律法规试题及答案.docx VIP
- 辽宁省沈阳市辽宁省实验中学2025-2026学年高一上学期期末语文试题(含答案).docx VIP
- 麻醉中级考试精选题库及答案解析.docx
- 货款结算合同范本及法律解读.docx VIP
- 威海芜船船舶制造有限公司X射线探伤机移动探伤项目报告表.pdf VIP
- 2026年高考第一次模拟考试:生物一模保分卷(课标全国通用)(考试版).docx VIP
- 新中国的医疗卫生发展.pptx VIP
- 2025年甘肃卷历史高考试卷(原卷+答案).pdf VIP
- (二诊)绵阳市高中2023级(2026届)高三第二次诊断性考试化学试卷A卷+B卷(含答案).pdf
原创力文档

文档评论(0)