- 2
- 0
- 约8.87千字
- 约 36页
- 2017-11-12 发布于广东
- 举报
尚辅网 / 第9章 指针与数组 本章重点 § 指针的概念与指针赋值 § 指针变量对一维数组元素的引用方法 § 指针变量对字符串的引用 § 指针数组的概念 本章难点 § 如何用指针变量来表示数组元素及元素的地址 § 指针变量在一维数组中的移动 § 字符指针变量的赋值方法及运用 § 数组指针与指针数组的区别 § 数组指针的理解与应用 9.1 指针的基本概念 变量的值存放在内存中,而内存有一确定的地址。在C语言中,有一种变量用来存放内存的地址,这种变量称为指针变量。 1. 指针变量的定义 定义指针变量的一般形式如下: 类型名 *指针变量名; 例如: int *p1 ,*p2; 注意:类型是指针变量所指的地址上存储内容的类型。 2. 指针变量的赋值 一个指针变量可以通过赋值、初始化、分配内存空间来获得一个确定的地址值,从而指向一个具体的对象。 例如,若有以下定义: int k=1,*q,*p; q=k; /* 指针q指向变量k的地址 */ p=q; /* 指针p指向指针q所指的地址,指针变量p和q都指向了变量k */ 注意:当进行赋值运算时,赋值号两边指针变量的基类型必须相同。 3. 指针变量的间接寻址运算 从指针变量所指的地址上取内容可用运算符“*”。“*”称为间接寻址运算符,其操作数是一个指针变量。 间接寻址运算符形式如下: *指针; 它的功能是获取指针所指存储单元的值。 【例9.1】 定义一个整型变量与一个指向整型数的指针,让指针指向变量的地址,通过从键盘输入一个数给变量,输出指针所指的地址上的内容。 #includestdio.h int main() { int x; int *p; /*定义指针变量p*/ p=x; /*指针变量指向变量x的地址*/ scanf(%d,x); printf(*p=%d\n,*p); /* *p为指针变量p所指的内存上的内容*/ return 0; } 分析:在图9.1中,假定变量x分配在内存2000H地址上,指针变量p分配在内存2500H地址上,从键盘读入100给变量x。由于执行语句p=x;它表示指针p指向变量x的地址,即指针p的值为2000H,而2000H上的内容就是变量x的值100。 p:2000H x:100 内存地址 2000H 2500H 图9.1 p=x的示意图 注意: 1)指针变量名是一个标识符,对它的命名要符合标识符的命名规则。 2)指针变量只能指向同一类型的变量。 3)指针定义时的“*”只是定义说明符,它并不是指针变量名的一部分。例如,在定义指针变量int *p;时,p为指针变量,*p并不表示指针,而表示指针变量p所指地址上的内容。 int x, *p=x; 能否把此语句中的*p理解为指针p取内容运算。如果把此语句中的*p=x;单独写出是否正确? 答:不正确,不能这样理解,此处*表示指针的定义符,而不是取内容运算符,如果写成*p=x是不正确的,因为此时左边*为取内容运算符,右边是变量的地址,应改为p=x才正确。 注意: C语言中有一个特殊的指针值NULL,即全部二进制为0的值。引进NULL 的目的是作为指针的异常事件标志。除了给指针变量赋地址值外,还可以给 指针变量赋NULL值,例如: p = NULL; NULL是在stdio.h头文件中定义的预定义符,因此在使用NULL时,应该在程序的前面出现预定义行:#includestdio.h。NULL的代码值为0,当执行了以上的赋值语句后,称p为空指针。 上机操作与练习1 分析下列程序的运行结果并上机调试: #includestdio.h void f(int *p) { *p=*p+10; } int main() { int x,i; FILE *fp; scanf(%d,x); fp=fopen(k.txt,w); f(x); for(i=0;ix;i++) fprintf(fp,%4d%c%c,i, ,a+(i+x)%26); fclose(fp); ret
您可能关注的文档
- AutoCAD2005中文版应用教程课件作者刘瑞新第04章节图层颜色.ppt
- AutoCAD2005中文版应用教程课件作者刘瑞新第10章节尺寸标注.ppt
- AutoCAD2005中文版应用教程课件作者刘瑞新第12章节绘制三维图形.ppt
- AutoCAD2006基础教程课件作者王群课件第1章节.ppt
- AutoCAD2006基础教程课件作者王群课件第3章节.ppt
- AutoCAD2006基础教程课件作者王群课件第4章节.ppt
- AutoCAD2006基础教程课件作者王群课件第6章节.ppt
- 企业审计实务课件作者郑伟任务三探究审计目标与审计证据.ppt
- AutoCAD2006基础教程课件作者王群课件第7章节.ppt
- AutoCAD2006基础教程课件作者王群课件第8章节.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 四年级音乐下册欣赏《包粽子》《欢乐的夜晚》教案苏教版.pdf VIP
- 电镀加工项目可行性研究报告.docx VIP
- 第三单元第二章植物体内的物质与能量变化【速记清单】.docx
- 高大模板工程施工与支撑体系专项方案.docx VIP
- 春节后复工复产方案.doc VIP
- 中建协QC汇编_3-福州建工-提高大面积冷库墙体保温层施工质量——福州建工(集团)总公司.doc VIP
- Q SHB 0003-2016_全自动滚筒洗衣机玻璃观察窗.pdf VIP
- 电力工程安全协议书.doc VIP
- 2019年青海省中考数学试卷【原卷版】材料.pdf VIP
- AI驱动的组织重构与业务重构:绚星智慧科技AI实践白皮书.docx VIP
原创力文档

文档评论(0)