C語言語法問題,左操作數(shù)必須為左值是什么意思啊?我該怎么改啊? C語言中報錯 左操作數(shù)必須為左值 是什么?
所謂左值是指一個能用于賦值運算左邊的表達式。左值必須能夠被修改,不能是常量。我們用變量作左值,還可以看到,指針和引用也可以作左值。改成b=9-c。
一般形式為:變量=表達式。它的作用是將一個表達式的值賦給一個左值。
計算賦值運算符右側(cè)表達式的值(“=”為賦值運算符),將賦值運算符右側(cè)表達式的值賦給左側(cè)的變量,將賦值運算符左側(cè)的變量的值作為表達式的值。
例如:
int a, b, c;
a=3;
b=4;
c = ( a + b )*(2*a - b) // 得出14
擴展資料:
注意
1. 多重賦值表達式不能出現(xiàn)在變量說明中。例如:
int i=j=0;
是非法的。
例:有變量說明
int a=2,b;
指出下面表達式運算后a和b的結(jié)果。
b+=b=++a;
答:a為3,b為6。
<> 有時將賦值運算與比較運算結(jié)合在一起形成嵌入賦值。例如:
while ((ch=getchar())!='
');
這條語句的含義是:等待用戶按下回車鍵后程序向下執(zhí)行。
2. x *= y+8等價于x=x*(y+8),不等價于 x = x*y+8。
同樣:z &= y-x等價于z = z & (y-x),而不等價于z = z &y -x。
參考資料:
百度百科-賦值運算符
就是左邊的數(shù)必須是變量,只能是一個 比如b+c=9中,左邊不能有兩個變量,這樣時錯誤的。
char a = 0;
*((int*)a) = 10;
此時10左邊的是個臨時變量。
變量來源于數(shù)學(xué),是計算機語言中能儲存計算結(jié)果或能表示值抽象概念。變量可以通過變量名訪問。在指令式語言中,變量通常是可變的;但在純函數(shù)式語言(如Haskell)中,變量可能是不可變(immutable)的。在一些語言中,變量可能被明確為是能表示可變狀態(tài)、具有存儲空間的抽象(如在Java和Visual Basic中);但另外一些語言可能使用其它概念(如C的對象)來指稱這種抽象,而不嚴(yán)格地定義“變量”的準(zhǔn)確外延。
左值就是賦值號“=”左邊的表達式。左值必須是一個地址空間,而且是可以改變內(nèi)容的地址空間。a+b表示的地址不確定。同樣也有右值表達。通常所說的a=8,其實是將常量放到a對應(yīng)的地址空間。a就是是棧上內(nèi)存空間所對應(yīng)的32為地址的一個別名。所以a+b把兩個地址空間相加不能做為一個確切的地址空間,不可以做為左值。a+b可以作為右值,即將a和b中的內(nèi)容值相加。
就是左邊的數(shù)必須是變量,只能是一個
比如b+c=9中,左邊不能有兩個變量,這樣時錯誤的
滿意請采納
就是左邊的數(shù)必須是變量,只能是一個
比如b+c=9中,左邊不能有兩個變量,這樣時錯誤的
滿意請采納
左操作數(shù)必須為左值什么意思
左操作數(shù)必須為左值指一個能用于賦值運算左邊的表達式。左值必須能夠被修改,不能是常量權(quán)。我們用變量作左值,還可以看到,指針和引用也可以作左值。一般形式為:變量=表達式。其作用是將一個表達式的值賦給一個左值。計算賦值運算符右側(cè)表達式的值(“=”為賦值運算符),將賦值運算符右側(cè)表達式的值賦...
C語言提示left operand must be l-value
解釋:賦值號(‘=’)左邊的操作數(shù)必須是一個左值。通俗的說:左值就是可以改變的值的變量。發(fā)生這個錯誤的原因是你把常量(或不可改變值的變量)放到了賦值號的左邊。例如:int a[3];a++;\/\/這里就相當(dāng)于a=a+1;注意a是數(shù)組a[3]的首地址,在聲明a[3]后,將開辟一段連續(xù)內(nèi)存空間。就是這段...
各位大佬這是什么原因,左操作數(shù)必須為左值?
編譯器的提示統(tǒng)一且廣泛,意指操作對象必須是可以修改的左值。這里的關(guān)鍵在于左值,即可以被賦值的對象。
c語言中的* p+ i是什么意思?
出現(xiàn)該錯誤提示是因為語法錯誤。“l(fā)eft operand must be l-value”的意思是左操作數(shù)必須是左值。左值(l-value):出現(xiàn)于“=”左邊的標(biāo)識符。(為變量)。右值(r-value):出現(xiàn)于“=”右邊的標(biāo)識符。(變量或表達式)。表達式:產(chǎn)生確定不變的值。類似于a1x^n + a2x^n-1 +...+ an多項式(n>=...
C語言 我是初學(xué)者
這句話的意思其實就是 “左邊的操作數(shù)必須為是在賦值中可以放在賦值操作符兩邊的值”一切變量都是左值,但const量是例外。舉些例子給你瞧瞧就知道了:p是一個左值,和變量一樣,只要在*p的右邊加上賦值運算符,就可改變*p的值。如果p是一個指向常量的指針,*p就是一個不能修改的左值,即它不能被...
什么叫做C2106“=”:左操作數(shù)必須為左值
此時10左邊的是個臨時變量。變量來源于數(shù)學(xué),是計算機語言中能儲存計算結(jié)果或能表示值抽象概念。變量可以通過變量名訪問。在指令式語言中,變量通常是可變的;但在純函數(shù)式語言(如Haskell)中,變量可能是不可變(immutable)的。在一些語言中,變量可能被明確為是能表示可變狀態(tài)、具有存儲空間的抽象(如在...
左值和右值的區(qū)別
在C語言學(xué)習(xí)過程中,大家或許聽到過左值和右值的概念,甚至在調(diào)試程序時編譯器也會給出” left operand must be l-value ” 即左操作數(shù)必須為左值!,今天我們將為大家詳細(xì)解釋這兩個詞,以及兩者的區(qū)別!簡單而言,在賦值運算符“=”左邊的就是左值,在賦值運算符“=”后邊的就是右值,感覺像是廢話...
error C2106: “=”: 左操作數(shù)必須為左值
你這條語句出錯了,p.getFirst()=temp1、p.getSecond()=temp2; p.getSecond()返回的是一個臨時變量,并不能存儲temp2的拷貝。順便舉個例子,左值相當(dāng)于匯編的 mov ax, 3; 在逗號左邊的叫左值。由于左值是臨時變量,不是能存儲對象的地方,所以編譯出錯。
左操作必須為左值什么意思
。所以這里沒報錯(但是邏輯上錯了)所以你ClassAverage應(yīng)該定義為float型,而不是float數(shù)組型 即在ClassAverage定義時寫為float ClassAverage;我試著編譯了一下,沒問題。邏輯沒太細(xì)看 還有最后輸出"%ld%d%d%d8.1f\\n"是什么意思?如果ID是1 分?jǐn)?shù)分別為10 10 10,那么輸出結(jié)果為11010108.1f ...
eclipse的C語言問題 報錯:賦值運算符的左操作數(shù)必須是左值
左值就是在賦值中可以放在賦值操作符兩邊的值,比如: int a = 1; double b = 2.0 a = b; b = a; 這里a和b都是左值, 你那個c+k = 32不能寫成 32=c+k 因為32是常量,所以這個不是左值
相關(guān)評說:
潁上縣非主: ______ m_strT之前有聲明嗎?是哪部份聲明的,是全局變量?還是私有的?如果m_strT是你用向?qū)υ捒蚪壎ǖ囊粋€編輯控件,那么在綁定的時候選擇的是控件類型,還是string類型,或者整數(shù)類型之類的
潁上縣非主: ______ 正確的選項是A,
潁上縣非主: ______ b > max ? max = b : max = max; 這句的符號優(yōu)先級有點亂,你這句等同于 (b > max ? max = b : max) = max; (b > max ? max = b : max)的結(jié)果是個常量,當(dāng)然不可以修改(就是左值)
潁上縣非主: ______ 這個只是一個錯誤消息,你雙擊這行就可以到達錯誤的位置.錯誤類型:“operator”: 左操作數(shù)必須為左值該運算符必須將左值作為其左操作數(shù). 比如給常量...
潁上縣非主: ______ 錯誤提示很明確,左操作數(shù)必須是個左值.iMul-IMUL得到的是一個臨時變量是一個右值,你不能對一個右值進行復(fù)制.PS:看是不是左值我的觀點是看他能不能直接取到地址,iMul-IM...
潁上縣非主: ______ %要求其 左右操作數(shù)都是整型,故BC都不對 C中x=y*5=x+z等效于x=(y*5)=x+z,賦值運算符的左操作數(shù)必須是左值,故C也不對 答案是A
潁上縣非主: ______ #include /* 行末的分號不要 */ while((a=getchar())!=EOF) /* =!改為 != */
潁上縣非主: ______ left operand -- 左邊的操作數(shù)l-vause -- 左值(變量).常出現(xiàn)在賦值語句,例如 '=' : left operand must be l-value賦值號 左邊的操作數(shù) 必需是 l-vause...
潁上縣非主: ______ 意思就是等號左邊不是變量,是表達式.如:a+b=2; //a+b是表達式,不是變量,這在C中不允許.
潁上縣非主: ______ 呵呵~你疏忽了一點,優(yōu)先級~! (M(a))*(M(x))<0?b=x:a=x; 改為 (M(a))*(M(x))<0?(b=x):(a=x);