C语言的一道题目 为什么要换成指针,用变量a和b不行吗? 还有就
C语言的一道题目为什么要换成指针,用变量a和b不行吗?还有就是while(*s)是什么意思,什么时候需要写,用到指针指向字符串就要写一遍吗?...
C语言的一道题目
为什么要换成指针,用变量a和b不行吗?
还有就是while(*s)是什么意思,什么时候需要写,用到指针指向字符串就要写一遍吗? 展开
为什么要换成指针,用变量a和b不行吗?
还有就是while(*s)是什么意思,什么时候需要写,用到指针指向字符串就要写一遍吗? 展开
展开全部
Q: 为什么要换成指针,用变量a和b不行吗?
A: 首先,函数只能返回1个值,这里需要返回大小写的数量,是2个,所以不能用函数返回值的写法(当然也可以变通,比如定义一个结构包含a和b,函数返回一个结构)。
其次,为什么不用变量?因为变量有作用域的问题,在fun函数中定义的a和b,在主函数中是没有意义的。
综上,题中使用传地址(即指针)的方式解决a, b回传主函数的问题。
Q: 还有就是while(*s)是什么意思,什么时候需要写,用到指针指向字符串就要写一遍吗?
A: while(*s)一般用来遍历字符串(结合s++调整指针位置),因为字符串是以0结尾的,那么*s为真时循环继续。
A: 首先,函数只能返回1个值,这里需要返回大小写的数量,是2个,所以不能用函数返回值的写法(当然也可以变通,比如定义一个结构包含a和b,函数返回一个结构)。
其次,为什么不用变量?因为变量有作用域的问题,在fun函数中定义的a和b,在主函数中是没有意义的。
综上,题中使用传地址(即指针)的方式解决a, b回传主函数的问题。
Q: 还有就是while(*s)是什么意思,什么时候需要写,用到指针指向字符串就要写一遍吗?
A: while(*s)一般用来遍历字符串(结合s++调整指针位置),因为字符串是以0结尾的,那么*s为真时循环继续。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询