欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    9.1 指针和数组的内存分配电子课件 计算机系统基础:C语言视角(RISC-V版).ppt

    • 资源ID:87514601       资源大小:2.15MB        全文页数:17页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    9.1 指针和数组的内存分配电子课件 计算机系统基础:C语言视角(RISC-V版).ppt

    9.1指针和数组的内存分配电子课件计算机系统基础:C语言视角(RISC-V版)指针指针和数组的内存分配和数组的内存分配声明声明指针变量指针变量声明声明type*pointer_name;type*pointer_name;变量名:变量名:pointer_namepointer_nametypetype:指针所指的数据的类型:指针所指的数据的类型指针变量包含了一个存储对象的地址,比如一个变量的指针变量包含了一个存储对象的地址,比如一个变量的地址地址指针运算符指针运算符取取地址运算符地址运算符“&”“&”间接运算符间接运算符“*”“*”取取地址运算符地址运算符“&”生成操作数的存储地址生成操作数的存储地址intobject;int*ptr;object=4;ptr=&object;寄存器和内存的分配寄存器和内存的分配假设假设objectobject和和ptrptr都是局部变量,都是局部变量,ptrptr分配给寄分配给寄存器存器s1s1,objectobject必须被分配到栈帧中必须被分配到栈帧中intobject;int*ptr;object=4;ptr=&object;赋值语句赋值语句lilit0,4t0,4#x5=4#x5=4swswt0,0(sp)t0,0(sp)#object=4;#object=4;mvmvs1,sps1,sp#ptr=&object;#ptr=&object;intobject;int*ptr;object=4;ptr=&object;间接运算符间接运算符解解引用引用运算符运算符“*”间接操作存储对象里的值间接操作存储对象里的值type*pointer_name;type*pointer_name;*pointer_name*pointer_name,被,被指针变量指针变量pointer_namepointer_name所所指的值指的值intobject;int*ptr;object=4;ptr=&object;*ptr=*ptr+1;*ptr*ptrint object;int object;int*ptr;int*ptr;object=4;object=4;ptr=&object;ptr=&object;*ptr=*ptr+1;*ptr=*ptr+1;lwlwt0,0(t0,0(s1s1)#t0-*ptr#t0-*ptraddiaddit0,t0,1t0,t0,1#*ptr+1#*ptr+1swswt0,0(t0,0(s1s1)#*ptr=*ptr+1;#*ptr=*ptr+1;*ptr*ptr赋值运算符的右边赋值运算符的右边出现在单元中的值出现在单元中的值赋值运算符的左边赋值运算符的左边要作修改的单元要作修改的单元*ptr*ptr 与与 objectobjectint object;int object;int*ptr;int*ptr;object=4;object=4;ptr=&object;ptr=&object;/*ptr=*ptr+1;/*ptr=*ptr+1;object=*ptr+1;object=*ptr+1;fpfpobject:object:4 45 5s1s1raraspspfpfp.lwlwt0,0(s1)t0,0(s1)#t0-*ptr#t0-*ptraddiaddit0,t0,1t0,t0,1#*ptr+1#*ptr+1swswt0,0(t0,0(spsp)#object=*ptr+1;#object=*ptr+1;数组数组在在内存内存中中连续排列连续排列的一列数据的一列数据字符序列字符序列,字符数组字符数组数组数组在内存中的分配在内存中的分配示例:示例:int x10;int x10;访问数组的访问数组的元素元素使用下标使用下标/索引访问这个数组中的某个特定的索引访问这个数组中的某个特定的元素元素下标:从这个数组第一个元素开始的偏移量下标:从这个数组第一个元素开始的偏移量例如:例如:x5=x0+1;x5=x0+1;示例示例x5=x0+1;x5=x0+1;addit0,sp,0#t0-数组的基址数组的基址lwt1,0(t0)#t1-x0 addit1,t1,1#t1-x0+1swt1,20(t0)#x5=x0+1;基址基址+偏移量偏移量数组的下标可以是任意的合法的数组的下标可以是任意的合法的C C语言整数表语言整数表达式达式xi+5=xi+1;xi+5=xi+1;/假设假设i i被分配给被分配给s1s1addit0,sp,0#t0-数组的基址数组的基址 sllit1,s1,2#t1-i*4addt1,t0,t1#计算计算xi的地址的地址 lwt2,0(t1)#t2-xi addit2,t2,1#t2-xi+1 addit1,s1,5#t1-i+5 sllit1,t1,2#t1-(i+5)*4addt1,t0,t1#计算计算xi+5的地址的地址 swt2,0(t1)#xi+5=xi+1;数组与指针之间的关系数组与指针之间的关系数组的名字数组的名字:数组的基址数组的基址int x10;int x10;int*ptr;int*ptr;ptr=x;ptr=x;x:x:等价于等价于&x0 x5 x5 或或 *(ptr+5)(ptr+5):访问同一元素:访问同一元素#假设假设ptrptr被分配给被分配给s1s1addiaddit0,sp,0 t0,sp,0#t0-#t0-数组的基址数组的基址mvmvs1,t0s1,t0#ptr=x;#ptr=x;区别区别ptrptr:变:变量,可以被重新赋值量,可以被重新赋值数组数组名名x x:不能被重新赋值不能被重新赋值x=ptr+;/x=ptr+;/非法!非法!intx10;int*ptr;ptr=x;

    注意事项

    本文(9.1 指针和数组的内存分配电子课件 计算机系统基础:C语言视角(RISC-V版).ppt)为本站会员(春哥&#****71;)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开