第一范文网 - 专业文章范例文档资料分享平台

编译原理课后答案

来源:用户分享 时间:2025/8/9 20:40:01 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

6.12

13

6.23

14

6.9

c语言函数f的定义如下: int f (int x,*py,**ppz){ **ppz+=1;*py+=2;x+=3;return x+*py+**ppz; }

变量a是一个指向b的指针;变量b是一个指向c的指针,而c是一个当前值为4的整数变量。如果我们调用 f(a,b,c),返回值是什么?

调用的顺序不正确,应该是f(c,b,a)才符合函数的定义,否则编译是通不过的。除非调用时进行强制转换。

如果强制转换以后调用,f函数内,ppz是形参,是个整数指针的指针,而ppz的实参是c,它的值就是4,指向的地址空间就是错误的。py倒是可以,实参为b,指向c,*py的值就是c的值,为4。x的实参是a,实际上是个整数指针的指针,函数内当做整数来用,但是它的值是不确定的。

如果按照f(c,b,a)的顺序调用,**ppz+=1后,c=*b=**a=5;*py+=2后,c=*b=**a=7,x+=3后,x=7,而c=*b=**a=7,(这是因为x为值传递,改变c没有改变x,改变x也没有改变c)最终返回的是7+7+7=21。

第七章

15

7.13 C语言的for语句有下列形式:

For(e1;e2;e3)stmt 它和e1; while(e2)do begin stmt; e3 end

7.14

16

搜索更多关于: 编译原理课后答案 的文档
编译原理课后答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c5favw736yq8ojit8frcd_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top