相关疑难解决方法(0)

c中使用三元运算符的错误

我在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 gcc turbo-c

6
推荐指数
2
解决办法
1588
查看次数

为什么涉及三元运算符的这段代码在 C 中会出错,但在 C++ 中却不会?

对于 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 c++

4
推荐指数
1
解决办法
180
查看次数

C 编程 - #define 函数

我正在深入学习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)

c

-2
推荐指数
1
解决办法
3205
查看次数

标签 统计

c ×3

c++ ×1

gcc ×1

turbo-c ×1