- 1、本文档共107页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机程序设计语言;第6章 指针;6.1 指针基础;内存
计算机的内存储部件,所有指令和数据都保存在内存中
速度快,但是断电即失
可以随机访问
只要指名要访问的内存单元的地址,就可以立即访问到该单元
地址
地址是内存中每个字节固定的编号,是一个无符号整数(通常用16进制数表示)
;地址
地址是内存中每个字节固定的编号,是一个无符号整数
变量地址与变量内容
每个变量在内存中都占有一定字节数目的存储单元
变量在内存中所占存储单元的首地址,就称为该变量的地址
变量在内存中所占存储单元中存放的数据,就称为变量的内容
;如何读写内存中的数据?
1通过变量名访问到内存中的内容 如:printf(“%d”, a);
系统根据变量名a和其地址的对应关系,找到变量名a对应的内存地址,然后再根据该地址值,找到并取出空间上的内容
从用户角度——“直接”访问
从内存角度——“间接”访问
2通过内存单元的地址访问内存单元(速度快、效率高)
将地址存放在一种特殊类型的变量中,把对地址的操作转换为对变量的操作
指针:一个变量的地址称为该变量的指针
指针变量:专门存放地址数据的变量
;指针:一个变量的地址称为该变量的指针
指针变量:专门存放地址数据的变量
; 6.1.3 指针变量的定义; 6.1.3 指针变量的定义; 6.1.4 指针变量的初始化和赋值;#include stdio.h
void main(void)
{
int i;
int *p1=i;
i=8;
printf(*p1=%d,i=%d\n,*p1,i);
*p1=5;
printf(*p1=%d,i=%d\n,*p1,i);
}; 6.1.4 指针变量的初始化和赋值; 6.1.4 指针变量的初始化和赋值;指针变量与其它类型变量的对比;与*运算符的关系:互为逆运算; 6.1.4 指针的运算;1 赋值运算
要求:指针在使用前一定要赋值(为指针变量赋一个地址)
指针变量同普通变量一样,使用之前不仅要定义说明, 而且必须赋予具体的值后才能使用,否则指针变量所指向的存储单元是不确定的,可能是系统的重要数据,当向储存着重要数据的位置写入新数据可能会造成系统潜在危险,甚至系统瘫痪
指针变量的内容只能是地址,而不能是数据,必须用相同基类型的地址对其进行赋值
;1 赋值运算
要求:指针在使用前一定要赋值(为指针变量赋一个地址);2 算术运算
指针可参与的算术运算仅有两种:加和减,即加、减一个整数(包括自增、自减运算)
p+n、p-n、p++、p- -、++p、- -p
指针是一个含有基类型特征的地址,它的移动单位是基类型长度
;2 算术运算
指针可参与的算术运算仅有两种:加和减,即加、减一个整数(包括自增、自减运算)
p+n、p-n、p++、p- -、++p、- -p
指针是一个含有基类型特征的地址,它的移动单位是基类型长度
p+1与p++的异同:(p++独立成语句)
p+1与p++都指向当前指针所指单元的下一个元素
p+1并不改变当前指针的指向,即p的值并未改变, 而p++相当于p=p+1,即使指针p向下移动一个元素位置
;3 两指针变量间的运算
要求:必须是指向同一数组的两个指针变量之间
相减运算:求出两者之间的数据个数;3 两指针变量间的运算
要求:必须是指向同一数组的两个指针变量之间
相减运算:求出两者之间的数据个数
关系运算:表示两者所指数组元素间的地址关系
运算结果:0或1
p1==p2 为1 p1、p2指向同一元素
p1p2 为1 p1地址在p2后
p1p2 为1 p1地址在p2前
指针不与非指针量进行比较,仅可与NULL(即0值)进行等或不等的关系运算,判断是否为空指针(应用于:动态内存分配)
P == NULL
p != NULL
;2010年期末考题;2010年期末考题;6-1 ,6-2 ,6-3;6.2 指针与数组; int a[4], *p=a; /*或p=a[0]*/
p+i和a+i就是a[i]的地址,即它们指向a数组的第i个元素
C规定p+1指向数组的下一个元素(而不是将p值简单地加1)
*(p+i)或*(a+i)是取出p+i或a+i所指向的数组元素,即a[i]
指向数组的指针变量也可以带下标,如p[i]与*(p+i)等价
数组元素的几种等价引用形式
a[i] ? *(a+i) ? p[i] ? *(p+i)
;输入输出数组的全部元素;小结:;例6.1
您可能关注的文档
- 第6章幻灯片的制作与播放题材.ppt
- 永川区百世物流网点布局优化5.0答辩.docx
- 细胞生物学1.绪论答辩.ppt
- 水电隐蔽工程验收答辩.ppt
- 挖孔桩工艺答辩.docx
- 第6章集成运算放大器基本应用电路题材.ppt
- 用VBA实现公司文档管理答辩.pptx
- 用Word发邮件答辩.docx
- 水电站第一次作业答辩.docx
- 用行动成就我的大学答辩.pptx
- 2025中国冶金地质总局所属在京单位高校毕业生招聘23人笔试参考题库附带答案详解.doc
- 2025年01月中国人民大学文学院公开招聘1人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2024黑龙江省农业投资集团有限公司权属企业市场化选聘10人笔试参考题库附带答案详解.pdf
- 2025汇明光电秋招提前批开启笔试参考题库附带答案详解.pdf
- 2024中国能建葛洲坝集团审计部公开招聘1人笔试参考题库附带答案详解.pdf
- 2024吉林省水工局集团竞聘上岗7人笔试参考题库附带答案详解.pdf
- 2024首发(河北)物流有限公司公开招聘工作人员笔试参考题库附带答案详解.pdf
- 2023国家电投海南公司所属单位社会招聘笔试参考题库附带答案详解.pdf
- 2024湖南怀化会同县供水有限责任公司招聘9人笔试参考题库附带答案详解.pdf
- 2025上海烟草机械有限责任公司招聘22人笔试参考题库附带答案详解.pdf
文档评论(0)