www.fltk.net > 求问C语言 #inCluDE <stDio.h> voiD Fun(ChAr *C,in...

求问C语言 #inCluDE <stDio.h> voiD Fun(ChAr *C,in...

开始a='A',b='a' 进入fun函数后,c指针指向b,a的值传给了d,所以*c='a',d='A' 然后做加法,*c='b',d='B' 输出'bB' 退出fun函数后,因为第一个参数是指针,所以b变成了'b',因为第二个参数是值,所以a仍是'A' 再输出就是'bA'了

代码是给人看的,不是给机器看的,注意格式,整成这一行算什么fun执行的时候,会把每个变量+1然后打印,所以会先打印bb执行完后,因为fun的第一个参数是指针,而在fun函数里对指针的引用意味着会改变指针指向的变量的值.也就

你在程序里有判断if(*c>='a'&&*c你主函数输出的是s[5],也就是你输入的第五个字符,你输入的是空格,对应的ascii码值就是32.而你在子函数里输出的时候,用的是c[5],此时while循环已经执行完,*c为0,但是c[5]是c后面第五个地址中的数据,此数据不是你处理过的,是内存中原来的数,应该是个不确定的值.18只是个巧合,你换个时间,或是换台机器运行,也有可能是其它值.另外,你的程序还有一个问题,就是s[13],你应该只输入12个字符,因为字符串结尾还要加一个'\0',如果你输入13个字符,会溢出的.程序小没有问题,程序大的时候,会出问题的.是否可以解决您的问题?

while(*c) { if(*c>='a'&&*c 评论0 0 0

相关搜索:

网站地图

All rights reserved Powered by www.fltk.net

copyright ©right 2010-2021。
www.fltk.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com