求助一个c语言问题?

例题5中while括号里代表什么呢还有这道题怎么解释... 例题5中while括号里代表什么呢 还有这道题怎么解释 展开
 我来答
小菜鸟2无聊写代码
2019-12-02 · TA获得超过1058个赞
知道小有建树答主
回答量:932
采纳率:87%
帮助的人:162万
展开全部
解题
argc是命令行参数的数目
( FILEL CHINA BEIJING SHANGHAI
运行输出
CHINABEIJINGSHANGHAI)
argv是参数字符串的数组
故*argv是一个字符串,也是argv[0]
++argv会使它指向下一个字符串
argv[]={"FILEL","CHINA","BEIJING","SHANGHAI"};//题目中argv的初始值可以看成是
e.g.
所以排除单个字符的选项C D
然后看选项A B
问题焦点在"CHINA" 就是 argv[1],或者说第一次++argv后的*argv是否会被输出(显然这是会的),故选A

源代码(不使用其它编译选项的)是
#include<stdio.h>
int main(int argc, char *argv[]){
while(argc-->0){
++argv;printf("%s",*argv);}
return 0;
}
说一下心得
首先面对这种问题不要慌张,哪怕程序完整地输入进电脑也编译不出来;为什么,编译选项(以下省略一堆文字说明),出题老师极有可能编译的方式和你不一样(而使用编译选项也是开源项目里常见的状况);看一下gcc --help,它有多少行,就有多少种编译方法,其中有一个选项可以用于指定被include进编译过程的库(故可以不在源代码里include)
其次是代码的印刷质量问题,这在并非知名的出版物上十分明显,字间距的变化不一很可能会误导你对空格的判断,所以在代码的空格有歧义的地方,一定不要放弃调试,或者就当它在空格的问题上没有错误)
代码质量就不要问了,代码这个东西,应该出现在纸上,还是在电脑上,哪个更有质量,应该就不用问了(搞代码的也是要有点能调试出错误的感觉)
追问
While括号里的代表什么意思 没见过这种字符
追答
问题十分有趣,它实际上是两个运算符,一个自减运算符,一个大于判断运算符(编译器是不会报错的,因为自减运算符先被认出)
匿名用户
2019-12-02
展开全部
这题目有问题吧,你有编译运行一下吗?只有4个命令行参数,但是最终输出前argv指向了不存在的位置,会有输出吗?反正我写了,也试了,不会输出什么结果,你们有要求用什么编译器吗?我用的是gcc,Windows环境
追答
感觉是出题的忘了把while的循环体加上大括号了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式