left operand must be l value 怎麼解決

時間 2025-01-17 09:25:28

1樓:網友

您好!你的語句是錯誤的,事實上,在c++中,=與==是不同,比較不同是用==,而=是賦值語句。

a*a+b*b=c*c這樣的語句導致出現left operand must be l-value 錯誤。

a = b這樣的賦值語句中,a必須是l-value(左值),為可以賦值的變數(不能是常量)。而b是r-value(右值),是賦值給左值的變數(或者常量)。a*a + b*b得到的值是常量,是不可以作為左值的。

你的程式只需要將=改為==即可以正常執行了。即由賦值改為你想要的比較語句。

祝你學習進步!希望能有幫助!

2樓:網友

你的判斷相等的等號和賦值號搞錯了:

修改後程式:

#include

void main()

int a,b,c;

do;else cout<<"不能構成三角形";}while(a&b&c);

c++出現left operand must be l-value

3樓:煒煒

你的if(strcmp(s[k],s[k+1])>0)部分出錯了,二維陣列不能這樣用,如果學過指標可以用指標操作,這裡我建議你改成下邊的形式。

if (strcmp(s[k], s[k + 1])>0)}

4樓:昭哥不4人

建議以後把行數也貼出來好了,看著麻煩,哈。

5樓:

就是賦值過程中=左邊不是變數。

6樓:

char * start;

for (;str)!='\0';str=str+n)改為:char *start = str;

for (;start)!='\0';start=start+n)

因為str表示乙個陣列的起始位置,並不是乙個指標,不能隨意移動。將其賦給乙個指標,該指標則指向陣列的起始位置。

7樓:稽仲諶雨晨

你的全域性變數中有乙個int的陣列名字叫b,而在jsval函式中你又申明瞭乙個int型別的變數b,後者在jsval函式中會隱藏掉前者,所以你不可以在jsval函式中些b[cnt]這類,因為b不會被認為是陣列型別,而會被認為是int型別。

c語言left operand must be l-value該怎麼解決

8樓:

(*psum - pmax - pmin) / (*pmem - 2)

pmax和pmin中間是減號,不是等號。

9樓:網友

把那一行的等號換成減號,你寫的那句話意思好比100-50=30

明顯照著敲**敲錯了。

10樓:青衣風雨

*psum-*pmax=*pmin ==》= 改成 - 號(去掉乙個最高分,去掉乙個最低分)

11樓:網友

解釋:賦值號(『=』)左邊的運算元必須是乙個左值。通俗的說:左值就是可以改變的值的變數。

發生這個錯誤的原因是你把常量(或不可改變值的變數)放到了賦值號的左邊。

例如:int a[3];

a++;//這裡就相當於a=a+1;注意a是陣列a[3]的首位址,在宣告a[3]後,將開闢一段連續記憶體空間。就是這段連續記憶體空間的首位址,是乙個常量。所以這裡將常量放到了賦值號的左邊是錯誤。

類似的,在c語言中是不可以寫2++;的。

例如:const int num=5;

int b=3;

num=b+4;//這裡num為不可改變的值,不能放到賦值號的左邊。

總結:賦值號左邊的值只能是左值。而上面兩個例子中的a,num都不是左值,所以在編譯時會出錯。

關於 修改。

int (*a)[3] = new int[2][3];

a[0] = ;

a[1] = ;

出現的相應報錯的解決辦法:

1)迴圈語句 逐個賦值 ;

2)整體賦值。

int (*a)[3] = new int[2][3];

int tmp[2][3] = ,}

a = tmp;

12樓:匿名使用者

試試吧(float)去掉,改成試試?能不能行我也不知道。

left operand must be l-value

13樓:網友

if (50*i+30*j+j/30 = 100)應該改成if (50*i+30*j+j/30 == 100)

因為你誤寫成了賦值表示式,編譯器抱怨等號左邊不是個「左值」。

左值」的意思是乙個能被賦值的表示式(比如乙個變數,乙個指標取*號等等)

14樓:手機使用者

對於你在評價裡提的問題:"為什麼我這個程式設計不能輸出有效數值得。。"

我不明白你的程式想計算什麼,你可以再開個問題問問。

另外你的兩個while語句直接都跟了分號,肯定不對。

函式這個地方老是提示「left operand must be l-value",怎麼解決

15樓:網友

那個語句漏掉了乙個感嘆號,在p1->next的後面加上乙個感嘆號即可應該寫成。

while(num!=p1->number&&p1->next!=null)

程式設計出現'=' : left operand must be l-value問題怎麼改

16樓:哥德堡快遞

等號左邊必須是可修改變數或指標指向的記憶體。for(i*i=a;z*z=b;k*k=c)這句不知所云。