{
int a,b;
a=2;
b=2;
if(a==b);
}
如题,请问大家,if括号里面是“真”吗?或者说可不可以“被赋值的变量==被赋值的变量”这样子来写?
关于c语言的一个小问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
一轮明月照丘壑 2024-09-15 22:19关注以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
在您提供的代码中,
if(a==b);这条语句是存在一个错误的。这个错误在于结尾的分号。在C语言中,分号是一个结束语句的标志。因此,if(a==b);这个语句实际上是一个空的if语句,无论条件是否满足,都不会执行任何操作。换句话说,无论a和b的值是否相等,这个if语句都不会返回任何结果。至于您的问题,"被赋值的变量==被赋值的变量",在语法上是可以的,但在逻辑上是没有意义的。在大多数情况下,我们比较的是两个不同变量的值是否相等。虽然您在这里比较的是同一个值赋给的两个变量,这在语法上是允许的,但在逻辑上这种写法是冗余的,因为你已经知道这两个变量的值是相同的。在实际的编程过程中,这种写法并没有实际意义。所以在实践中我们通常会直接写一个变量进行比较,或者通过其他方式来处理这种情况。例如:
int a = 2; int b = a; // b 被赋值为 a 的值 if (a == b) { // 这里会执行一些操作,因为 a 和 b 是相等的 }本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用