#include<stdio.h>
int main(){
int cnt=0;
for(int i=0;i<10;i++){
cnt=cnt++;
}
printf("%d",cnt);
结果为什么会是0
怎么会是cnt=cnt++呢,++是运算符,不是函数。
这句改成cnt++就行了。
如果解决您的问题,选择解决采纳,谢谢。
【以下回答由 GPT 生成】
原因是由于cnt=cnt++
这行代码存在问题。
C语言中++
运算符有两种形式,前缀形式和后缀形式。前缀形式是将变量的值先加1然后再使用,后缀形式是将变量的值先使用然后再加1。
在上述代码中,cnt=cnt++
这行代码中的++
是后缀形式,意味着先将cnt
的值进行赋值操作,然后再进行自增操作。但是由于C语言中对于赋值和自增操作的优先级的规定,赋值操作的优先级大于自增操作,所以先将cnt
的值赋给了自身,然后再对cnt
进行自增。所以最终的结果是,cnt
的值没有发生变化,仍然是0。
而正确的写法应该是使用前缀形式的自增运算符,即将cnt
的值先自增再进行赋值操作。修改方式如下:
cnt=++cnt;
代码修改后的正确版本如下:
#include<stdio.h>
int main(){
int cnt=0;
for(int i=0;i<10;i++){
cnt=++cnt;
}
printf("%d",cnt);
}
这样修改后,输出结果就不再是0,而是10了。
【相关推荐】