我爱橙 发表于 2022-2-25 09:11:13

NO.231 for报错

本帖最后由 我爱橙 于 2022-2-25 10:30 编辑

#include <stdio.h>
#include <math.h>
int main()
{
      int i,x;
      
      for (;;x++=i);
      
                       
      return 0;
}
这个程序题目意思是无限循环,
第一没懂为什么只有调整表达式也能无限循环,是初始默认为真吗?
第二程序报错 lvalue required as left operand of assignment
第三x++=i应该是x=(x++)+i 吧?


#include <stdio.h>
#include <math.h>
int main()
{
      int i,sum;
      
      for (i=10;;i--)
      sum+=i;
                       
      return 0;
}
这个程序题目意思是无限循环,
第一我不理解为什么没有循环条件也还能无限循环,
但程序运行却直接没循环 不知道是哪里出错了,
另外不理解为什么sum还需要int,一开始没有int是报错了

大马强 发表于 2022-2-25 09:39:19

我记得for循环没表达式就是永真

第一个程序
报错的原因是左值出错
赋值的左边是左值,变量、符合字面量等都是左值,常量、表达式都不可以作为左值,x++ 是一个表达式报错

第二个程序
我这是无限循环了,你那原因我不是很清楚
另外不理解为什么sum还需要int,一开始没有int是报错了
任何变量在引用前要先声明,这是基础呀

angus 发表于 2022-2-25 09:43:12

第一个:for循环第一个是初始赋值,随后是进行判断,判断成功的话才会继续进行for里面的代码,没有判断条件不就是无限循环吗,第四个问题也是一样没有判断条件
第二个:你看看英文就知道了,左边是需要可以赋值的可操作数,x++是一个式子也就是x = x+1,所以第三个问题从根本上就是错的,另外x++和++x也是不一样的,一个是先用后加另一个是先加后用
最后一个:C语言变量只有在被定义之后才能使用{:10_258:}

我爱橙 发表于 2022-2-25 09:50:39

大马强 发表于 2022-2-25 09:39
我记得for循环没表达式就是永真

第一个程序


可是sum不是求和的函数吗

wp231957 发表于 2022-2-25 10:03:10

我爱橙 发表于 2022-2-25 09:50
可是sum不是求和的函数吗

sum就是一个普通变量,啥时候是函数了

大马强 发表于 2022-2-25 10:55:32

我爱橙 发表于 2022-2-25 09:50
可是sum不是求和的函数吗

求和函数是 sum()
函数一般都带括号 ()
页: [1]
查看完整版本: NO.231 for报错