1
 #include<stdio.h>   //line 1
 #include<conio.h>   //line 2
 void main()         //line 3
 {                   //line 4
   int a=6,g=7,b=3;    //line 5
   clrscr();           //line 6
   printf("%d",a>?g=a:g=b); //line 7
   getch();                //line 8
 }

案例1:保存文件之前

这将在第 7 行“需要左值”处给出错误。但是当我编译时不会出现错误,运行后会产生输出 3。

案例2:保存文件后

当我们保存这个文件时,我们得到一个错误“需要左值”。

对不起我的错误并在这里写下问题

 #include<stdio.h>   //line 1
    #include<conio.h>   //line 2
    void main()         //line 3
    {                   //line 4
    int a=6,g=7,b=3;    //line 5
    clrscr();           //line 6
    printf("%d",a>b?g=a:g=b); //line 7**
    getch();                //line 8
    }

案例1:保存文件之前

这将在第 7 行“需要左值”处给出错误。但是当我编译时不会出现错误,运行后会产生输出 3。

案例2:保存文件后

当我们保存这个文件时,我们得到一个错误“需要左值”。

4

2 回答 2

5

“需要左值”意味着您不能将值分配给在内存中没有位置的东西。基本上,您需要一个变量才能分配一个值。

在您的特定情况下,我会删除a>g=a:g=b它并用更易于理解的内容替换它,因为在当前状态下,没有人(包括您和您的编译器)对它应该是什么有丝毫的了解。

于 2012-11-23T06:40:01.683 回答
0

这: printf("%d",a>g=a:g=b); 没有意义。我不知道您是否要在其中设置一个条件,这是您永远不应该做的,尤其是对于如此简单的事情。

您应该阅读 printf 的工作原理,因为您不了解需要什么,就像这样:

int a = 1;
printf("%d",a);

或者您打算使用其他东西,但我从未见过像您之前在这里所做的那样 a>g=a:g=b 的语法。

于 2012-11-23T06:48:22.057 回答