24小时热门版块排行榜    

CyRhmU.jpeg
查看: 723  |  回复: 1

MNXYKT

新虫 (初入文坛)

[求助] c语言已有1人参与

有以下程序: void fun1(char*p) {char*q; q=p; while(*q!='\0') { (*q)++;q++;} } main() {char a[]={"Program",*p; p=&a[3];funl(p);printf("%s\n",a); } 程序执行后的输出结果是______。答案是prohsbn。我不理解的是实参和形参不应该相当于两个变量吗,在形参中改变应该不影响实参的变化啊,我觉得还应该输出program呀

发自小木虫Android客户端
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gjs619

铁虫 (初入文坛)

【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2017-09-17 01:03:23
传递的参数是指针,其实就是内存中的地址。函数中根据地址直接操作了内存中存储的内容。代码中fun1就是将对应地址的字符值加1.main中直接调用时修改了从a【3】到末尾的值,前3个字符没有变。
ontheway
2楼2017-09-16 13:01:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 MNXYKT 的主题更新
信息提示
请填处理意见