不知道N的值在循环中是否变化

来源:百度知道 编辑:UC知道 时间:2024/06/03 17:17:04
#include<stdio.h>
int fun(char s[])
{int n=0;
while(*s<='9'&&*s>='0'){n=10*n=*s-'0';s++}
return(n);
}
main()
{char s[10]={'6','1','*','4','*','9','*','0','*'};
printf("%d\n",fun(s));
}
程序运行的结果是多少?
我无法判断n值在while循环中发生变化没有,如果发生变化那么结果“61”怎么得到的?
第四行中括号中是n=10*n+*s-'0';s++;

LZ用的什么编译器?标准C中像10*n这种表达式是不可以作左值的,即不可给它赋值,
n=10*n=*s-'0';相当于:

10*n=*s-'0';//这样的句子是非法的
n=10*n;

早说是n=10*n+*s-'0';s++;不就简单了!
第一次n是0,所以n=6,第二次10*n+1等于61,所以n是61,第三次不满足循环条件,所以退出了....

没有,因为他main的时候已经变化了