- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话: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
您可能关注的文档
最近下载
- 2009石油化工行业检修工程动工预算定额说明.docx
- YB∕T6294-2024 锌铝合金镀层弹簧钢丝(报批稿).pdf VIP
- TSGZ6001—2019特种设备作业人员考核规则正文.pdf VIP
- 新湘教版七年级数学上册全册导学案.pdf VIP
- 2025年内蒙古自治区呼和浩特市初一新生入学分班考试真题含答案.docx VIP
- 2025年西藏高考理综真题试卷及答案.docx VIP
- 部编人教版一年级数学上册全册教案.docx VIP
- 超市经营服务方案.docx VIP
- 腐蚀数据与选材手册-校对版.xls VIP
- 六年级下册语文试卷-《金色的鱼钩》一课一练(含答案)人教部编版.pdf VIP
文档评论(0)