《内存及其操作》PPT课件.ppt

《内存及其操作》PPT课件.ppt

ID:52756192

大小:643.54 KB

页数:22页

时间:2020-04-13

《内存及其操作》PPT课件.ppt_第1页
《内存及其操作》PPT课件.ppt_第2页
《内存及其操作》PPT课件.ppt_第3页
《内存及其操作》PPT课件.ppt_第4页
《内存及其操作》PPT课件.ppt_第5页
资源描述:

《《内存及其操作》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1计算的本质从根本上说,计算就是执行CPU指令。实现自动计算,就一定要保存程序(内存)2CPU对内存的操作VonNeumannCPUMemoryAddressDataRead/Writecontrol8bit1Byte=8bit0012FF870012FF810012FF7F0012FF7D0012FF7C0012FF800012FF7E3内存的内容内存中存放的是可执行文件(.exe)。.exe与.c等效。.exe是.c中的代码转换成了指令与数据(机器码)。每个内存单元中,存放了指令或者数据。4对内存的访问用变量对应某段内存,可避免直接使

2、用内存地址内存的2个方面:地址+内容通过变量(符号)对内存内容进行读/写0012FF7C50012FF785intx=5;inty=x;5符号表exe文件中,根据obj的符号表把标识符变成地址。(obj中的符号表记录的是相对地址-从0开始)0012FF7C0012FF7D0012FF7F0012FF810012FF7E0012FF800012FF820012FF83符号类型地址(符号值)其他aint0012FF7C……funvoid0012FF82…………100inta=100;voidfun(){}100变量值变量名0012FF7C6在

3、代码中取地址&(取址=取地址值)地址值是常量(变量的地址,是只读的)不能对地址值取地址(区分地址和地址值)只能对变量取址(&右边是符号—标识符)地址有类型,地址值是字面值。地址可以取内容。技巧:在编程时你可以忘记符号表,而把内存内容等同于变量,内存地址等同&变量。inta=100;printf("%p",&a);0012FF7C1007在代码中取内容*(取内存的内容)inta=100;intb=*(&a);printf("a=%d",a);printf("&b=%p",&b);printf("b=%d",b);0012FF

4、7C1000012FF781008在代码中取内容*(取内存的内容)只能对地址取内容(*右边是地址,地址=指针),不能对非指针变量取内容。对于指针变量,取内容即指针所保存地址的内容,该内容可以读写。*与&是互逆的操作*与&的不同&由变量声明决定(不读写内存)*根据地址读取内存9操作与求值操作符(*&[]-+%=等等)通过类型进行操作,可以认为,操作是类型的行为。在操作之前,都会对操作对象求值(表达式求值)。操作对应计算机指令,操作对象对应数据。优先级()[].->,++--,*&,==inta=100;intb=a+1;int*p=&a;

5、p++;//p=p+1;10偏移地址取内容[]取内容,可读写。[]左边是地址。(*右边是地址)[]是一种危险操作,它不做越界检查。inta=10;intb=8;intc=3;printf("(&b)[1]=%d",(&b)[1]);printf("(&b)[0]=%d",(&b)[0]);printf("(&b)[-1]=%d",(&b)[-1]);读写内存inta=56;int*p=&a;写:a=56;*p=100;//*(&a)=100;p[0]=200;//(&a)[0]=200;读:intb=a;intc=*p;//i

6、ntc=*(&a);intd=p[0];//intd=(&a)[0];1112地址变量—指针(图示)0012FF78=&pp=0012FF7Ca=1000012FF7C=&a000000640012FF7Cinta=100;int*p=&a;//定义printf("*p=%d",*p);//操作0012FF780012FF7C指向指针的指针13130012FF78=&pp=0012FF7Ca=1000012FF7C=&ainta=100;int*p=&a;int**q=&p;0012FF74=&qq=0012FF7814地址变量—指针

7、地址变量也是变量,普通变量通常存储字面值,地址变量存储地址值。指针就是地址,指针(变量)存储地址值。指针的大小固定=机器字长。指针变量的偏移:p[i],p++,p--,p+i,p-iinta=100;int*p=&a;//定义printf("*p=%dp[0]=%d",*p,p[0]);15引用C++定义引用时,必须同时对其进行初始化。引用是通过指针实现的。引用也占用地址空间引用是被引用变量的别名(看起来像)inta=100;int&b=a;//定义printf("&b=%p&a=%p",&b,&a);//操作16数组数组

8、名称指代数组,其值为其地址值。(类似变量:&a)数组名称是数组的首地址;即第一个元素的地址。(类似指针a[2]),它是地址常量。数组:一组地址连续且数据类型相同的元素构成的集合inta[3]=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。