我在C中有一段代码如下:
main()
{
int a=10, b;
a>=5 ? b=100 : b=200 ;
printf("%d" , b);
}
Run Code Online (Sandbox Code Playgroud)
在unix中运行gcc编译器上的代码会将编译时错误生成为'赋值左值所需的左值',并将错误指向b = 200,而在使用Turbo C编译的窗口中,将200作为输出.
任何人都可以解释一下这种情况究竟发生了什么?
对于 C 中的“x=k”,我收到“错误:需要左值作为赋值的左操作数”,但代码在 C++ 中运行时没有错误。我不明白为什么 C 会给我这个错误,而 C++ 却不会。
#include <stdio.h>
int main() {
int j=10, k=50, x;
j<k ? x=j : x=k;
printf("%d",x);
}
Run Code Online (Sandbox Code Playgroud) 我正在深入学习C。但我没有得到这个程序。有人请告诉我下面程序的输出是如何m=2, n=3
#include <stdio.h>
#define MAX(a,b) a>b ? a:b
int main()
{
int m,n;
m=3+MAX(2,3);
n=2*MAX(3,2);
printf("m=%d, n=%d\n",m,n);
return 0;
}
Run Code Online (Sandbox Code Playgroud)