C语言:分析以下程序的输出结果

C语言:分析以下程序的输出结果,第1张

f1()中,name是指针,所以,在函数中,可以改变其中的内容,进而改变哪弯了实参中的内容;而num是普通变量,所以,在函数中的变化,不拆缓则会影响其实参的值

f2()中,q是指针,所以,在函数中,可以改变其中的内容,进而实参中的内容也就发生了变化

p=&s[1]

//p->name="LisiGuo"

p->num=20042

f1(p->name,p->num)

会改变p->name("SunDan"),而p->num不变

f2(&s[0])

s[0]中的内容,全部由子函数中的数据所替换,变为:"SunDan",20044

所以,输旅棚出结果为:

SunDan

20042

SunDan

20044

首先,可以告诉你,第一个程序是运行不了的。原因是,c1="a"此处的值为字符串,如果你的本意是c1 = 'a'的话,那么该程序运行结果是>a b

究其原因,%c表轿高碰示格式化打印字符。闭谈实际上,每个数字(似乎到8万多)都对应一个字符。

第二个程序的运行结果是>, ?

这里是int 转化为char,我们知道,一个char是8位,最大表示127(最高念旁位是符号位),300的超出部分直接丢弃。1 0010 1100 ---->00101100==44 ==',' 同理,我们可以得到400对应的?


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12218571.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存