C语言中的程序输出
发布网友
发布时间:2022-04-19 19:17
我来回答
共1个回答
热心网友
时间:2023-09-05 08:08
结果是:
Please
input
a
string:The
result
is:
0
0
0
0
0
从main函数开始执行,
遇到printf语句后输出Please
input
a
string:
这时你输入This
is
a
tree并赋给s
然后调用fun函数
此函数调用过程是:因为数组名就是数组的首地址,这时实参是把s数组的地扯传给了形参s的,
num传的也是数组的首地址,所以接下来如果在fun函数中对他们俩进行了修改的话,
实际的参数也是同时进行了修改的.
第一个for语句将数组元素都设为0
因为此时的s是指向"This
is
a
tree"这个字符数组的首地址,
其*s就是'T',当然不等于'\0'.所以此时会让i=-1.
刚说了*s是‘T’,所以它不与switch中任何一种情况相同。
所以它不会执行swihch中的语句。后面的if语句不成立。因为i=-1。
最后s++,s这时指向数组下一个元素,即‘h’。
函数调完后,接着执行下一条printf语句,输出The
result
is:并回车
因为数组里的元素在fun函数中改过了,都是0。所以输出的都就是五个0了。