华清远见嵌入式学习——C基础——作业15

一、

此代码输出结果为:a=1 b=10

解析:代码中,主函数中调用了自定义函数fun(),传参为整型变量 a 和 b 的值,而值传递过程下,形参的改变不会对实参的值造成影响,所以,a,b依然为主函数中定义的值,即a=1,b=10;

二、

此代码输出结果为:a=10 b=1

解析:代码中,主函数中调用了自定义函数fun1(),传参为整型变量 a 和 b 的地址,而地址传递过程下,形参的改变会对实参的值造成影响,又因为函数fun1()的功能实现了两个数的值的交换,所以a,b为相互交换后的值,即a=10,b=1;

三、

此代码输出结果为:a=1 b=10

解析:代码中,主函数中调用了自定义函数fun1(),传参为整型变量 a 和 b 的地址,自定义函数中使用指针型变量接收传参,自定义函数将 指针a 和 指针b的指向互换,即交换后,指针a保存的地址为整型变量b的地址,指针b保存的地址为整型变量a的地址,但整型变量a,b中的值并未发生改变,且主函数中输出语句打印的是 a 和 b 的值,所以 a=1,b=10;  

四、

char 类型变量的存储范围是【-128,+127】,该程序从-60开始循环,当执行68次后,a[68] = -128,再之后,会从+127循环向下,即a[69] = +127,当执行197次时,a[196] = 0,代码继续执行,a[197] = -1,但是输出语句中,strlen函数会计算到 \0 停止,且计算结果不包含 \0,此代码中strlen计算完第196个数后,遇到了0,计算结束,所以输出结果为 196

五、

arr+1地址为:0x1020+1*4*4 = 0x1030;

arr[0]+2地址为:0x1020+2*4 = 0x1028;

*(arr+2)+3地址为:0x1020+2*4*4+3*4 = 0x104c;

p+2的地址为:0x1020+2*4*4 = 0x1040;

*(p+1)的地址为:0x1020+4*4 = 0x1030;

*(p+1)+1的地址为:0x1020+1*4*4+1*4 = 0x1034;

&p+2的地址为:0x600+2*8 = 0x610;

六、

思维导图

有道云笔记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值