“Lvalue required”在C编译器错误中意味着什么?

时间:2012-11-23 06:28:45

标签: c lvalue

 #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号线'Lvalue required'处出错。但是当我编译时,没有错误会在运行之后产生输出3。

案例2:保存文件后

当我们保存此文件时,我们会收到错误“Lvalue required'。

抱歉我的错误并在此处写了问题

 #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号线'Lvalue required'处出错。但是当我编译时,没有错误会在运行之后产生输出3。

案例2:保存文件后

当我们保存此文件时,我们会收到错误“Lvalue required'。

2 个答案:

答案 0 :(得分:5)

“Lvalue required”表示您无法为内存中没有位置的内容分配值。基本上你需要一个变量才能分配一个值。

在你的特定情况下,我会删除a>g=a:g=b并用更易于理解的东西替换它,因为在当前状态下,没有人(包括你和你的编译器)对这应该是什么有任何想法。

答案 1 :(得分:0)

this:printf(“%d”,a&gt; g = a:g = b);没有意义。我不能告诉你是否要在其中制定一个条件,你不应该做的特别是对于这么简单的事情。

你应该读懂printf是如何工作的,因为你不理解需要的东西是这样的:

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

或者你打算使用其他东西,但我从未见过像你之前做过的语法a> g = a:g = b。