【发布时间】:2016-08-19 15:50:46
【问题描述】:
在这段代码中
#include <stdio.h>
int main(){
int i;
if(i= 50,40)
printf(" if blk i %d\n",i);
else
printf(" else part" );
return 0;
}
输出为
如果 blk i 50
但是当 if 语句中的赋值部分添加一个零时,它会转到 else 部分。为什么这个 0 让它转到 else 部分?
下面的代码:
#include <stdio.h>
int main(){
int i;
if(i= 50,40,0)
printf(" if blk i %d\n",i);
else
printf(" else blk i %d\n", i);
printf("i %d\n", i);
return 0;
}
【问题讨论】:
-
您认为
i= 50,40到底是做什么的?搜索逗号运算符和赋值运算符。 C和C++也是不同的语言!不要添加错误的标签! -
@olaf 非常感谢逗号操作符,但除此之外,对于这个小代码段,c 和 c++ 的工作方式相同,我只是检查了一下。无论如何,对不起,糟糕的帖子
-
如果您重载其中一个运算符,则不会。相同的语法和语法并不意味着相同的语义!只需选择您使用的语言。
-
靠猜测编程是行不通的。
标签: c if-statement variable-assignment