有以下程序,程序编译、连接后生成可执行文件exam.exe,若键入命令:exam 123〈回车〉, 则运行结果为:

int fun()
{ static int s=0;
s+=1;
return s; }
main(int argc,char *argv[])
{ int n,i=0;
while(argv[1][i]!='\0')
{ n=fun(); i++; }
printf("%d\n",n*argc); }
n为什么等于2,argc等于3

你搞错了吧 argc等于2,n等于3吧。
argc是命令行运行的参数个数,你的运行参数是“exam 123” 所以是2个参数,(命令行程序参数的第一个参数永远是程序名),argv[1]就是参数123,它长度是3,所以while循环体执行三次,每次函数fun()内的static 变量s会递增1,所以最终s变为3,n也就变为3,所以最终打印输出6来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网