當前位置:首頁 » 編程語言 » c語言哪些運算符要左值
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言哪些運算符要左值

發布時間: 2022-08-31 08:14:11

A. 在c語言中,++運算符要求左值,那該怎麼用呢,請高手舉幾個例子

什麼左值右值?
其實我想說的是:
i++表示先取表達式的值,然後i在自增1;++i表示i先自增1然後在取表達式的值。
舉個列子:
int i=1;
int a=i++;//那麼a的值為1,而i的值變為2
int b=++i;//那麼b的值為3,i的值也為3

B. C語言語法問題,左操作數必須為左值是什麼意思啊我該怎麼改啊

所謂左值是指一個能用於賦值運算左邊的表達式。左值必須能夠被修改,不能是常量。我們用變數作左值,還可以看到,指針和引用也可以作左值。改成b=9-c。
一般形式為:變數=表達式。它的作用是將一個表達式的值賦給一個左值。
計算賦值運算符右側表達式的值(「=」為賦值運算符),將賦值運算符右側表達式的值賦給左側的變數,將賦值運算符左側的變數的值作為表達式的值。
例如:
int
a,
b,
c;
a=3;
b=4;
c
=
(
a
+
b
)*(2*a
-
b)
//
得出14
(2)c語言哪些運算符要左值擴展閱讀:
注意
1.
多重賦值表達式不能出現在變數說明中。例如:
int
i=j=0;
是非法的。
例:有變數說明
int
a=2,b;
指出下面表達式運算後a和b的結果。
b+=b=++a;
答:a為3,b為6。
<>
有時將賦值運算與比較運算結合在一起形成嵌入賦值。例如:
while
((ch=getchar())!='\n');
這條語句的含義是:等待用戶按下回車鍵後程序向下執行。
2.
x
*=
y+8等價於x=x*(y+8),不等價於
x
=
x*y+8。
同樣:z
&=
y-x等價於z
=
z
&
(y-x),而不等價於z
=
z
&y
-x。
參考資料:
搜狗網路-賦值運算符

C. C語言中左值對象有哪些哪些數據類型或是表達式可以算作是左值!

左值,算是可訪問存儲的區域,要求「可訪問存儲」,那就可改變,變數(很多類型)就是,常數不是,你可以根據這個判斷下左值。

理解下左值對象吧,一般來說是計算機里一塊可訪問可存儲的區域,對象只是這塊區域的抽象標識,變數a,b,*p等都算,只不過按不同的類型分出不同大小的區域。標識可以任意給,所以對象有哪些,舉不完,而對象類型倒是有,什麼int對象,char對象,指針對象等等吧。

既然左值要求的是「可訪問可存儲」,即可找到它改變它,這個則不會關繫到區域大小。而存儲區域大小是靠類型來確定(比如int我分多大內存啊),既然不關繫到大小,與數據類型何干!

有幾個運算符構成的表達式,可以算是左值,不過很少(比如a++;a--;*p等他們可單獨成立,這個我也知道不多,還有sizeof(?)挖一塊?大小的區域),其他的一般都算右值的,因為表達式最後一般都會產生一個不可變的值(比如a+b,最終整個表達式代表一個結果值,不可變,它要賦給一個存儲對象也就是左值),當然左值表達式可以做右值,它本來就存有一個值,可以傳給他人嘛。。。
以前研究過左值,可以一起討論下。。。。。

D. C語言 什麼叫做左值右值

左值,就是指可以被取地址的表達式。簡單的說,可以出現在等號左邊的就是左值。比如:

E. c語言什麼叫需要左值作為賦值左操作數

左值就是可以被修改的值
你把==錯誤的寫成了=,所以錯了,這是邏輯比較,不是賦值,賦值是單等於,比較是雙等於

F. c語言中規定 賦值運算符的左邊必須是什麼

賦值運算符的左邊必須是變數。

簡單賦值運算符記為「=」,由「= 」連接的式子稱為賦值表達式。其一般形式為:

變數=表達式

例如:

x=a+bw=sin(a)+sin(b)y=i+++--j

賦值表達式的功能是計算表達式的值再賦予左邊的變數。賦值運算符具有右結合性,因此a=b=c=5可理解為a=(b=(c=5))。

在其它高級語言中,賦值構成了一個語句,稱為賦值語句。 而在C中,把「=」定義為運算符,從而組成賦值表達式。 凡是表達式可以出現的地方均可出現賦值表達式。

例如:式子x=(a=5)+(b=8)是合法的。它的意義是把5賦予a,8賦予b,再把a,b相加,和賦予x,故x應等於13。

(6)c語言哪些運算符要左值擴展閱讀

賦值運算符的作用是把右側表達式的值存入左側變數中,C語言中賦值操作是作為一種表達式來處理的。

賦值運算符(=)可以和算術運算符(+,-,*,/,%)及雙目運算符(&,|,^,>>,<<)組合成一個復合賦值運算符。但需要注意的是復合賦值運算符的兩個組成符號之間不能有空白字元。

G. eclipse的C語言問題 報錯:賦值運算符的左操作數必須是左值

左值就是在賦值中可以放在賦值操作符兩邊的值,比如: int a = 1; double b = 2.0 a = b; b = a; 這里a和b都是左值, 你那個c+k = 32不能寫成 32=c+k 因為32是常量,所以這個不是左值

H. 在C語言中11種賦值運算符的具體含義,用法

1.六個變數=表達式的賦值:

=是賦值運算符,/=是除後賦值,*=是乘後賦值,

%=是取模後賦值,+=是加後賦值,-= 是減後賦值,

2.<<=是左移後賦值,變數<<=表達式 左移就是將左邊的數的二進制各位全部左移若干位,右邊的數指定移動位數,高位丟棄,低位補0, 移幾位就相當於乘以2的幾次方。

3.>>=是右移後,變數>>=表達式,右移運算符是用來將一個數的各二進制位右移若干位,移動的位數由右操作數指定(右操作數必須是非負值),移到右端的低位被舍棄,對於無符號數,高位補0。

對於有符號數,某些機器將對左邊空出的部分用符號位填補(即「算術移位」),而另一些機器則對左邊空出的部分用0填補(即「邏輯移位」);

對無符號數,右移時左邊高位移入0;對於有符號的值,如果原來符號位為0(該數為正),則左邊也是移入0。

如果符號位原來為1(即負數),則左邊移入0還是1,要取決於所用的計算機系統,系統移入0或系統移入1。

移入0的稱為「邏輯移位」,即簡單移位;移入1的稱為「算術移位」。

4.&= 按位與後,變數&=表達式,按位與是指:參加運算的兩個數據,按二進制位進行「與」運算。

如果兩個相應的二進制位都為1,則該位的結果值為1;否則為0。

5.^= 按位異或後賦值,變數^=表達式,參與運算的兩個量按照對應的位進行異或運算,且
0^0→0, 0^1→1, 1^0→1, 1^1→0

一個數與0異或仍保持不變,如a^0=a
一個數與自己異或結果為0,如a^a=0

11.|=是按位或後賦值,變數|=表達式,參與運算的兩個量按照對應位進行或運算,且0|0→0, 0|1→1, 1|0→1, 1|1→1。

(8)c語言哪些運算符要左值擴展閱讀:

1.賦值表達式的功能是計算表達式的值再賦予左邊的變數。

賦值運算符具有右結合性,因此a=b=c=5可理解為a=(b=(c=5))。

2.在其它高級語言中賦值構成了一個語句,稱為賦值語句;

而在C語言中,

把「=」定義為運算符,從而組成賦值表達式。

3.凡是表達式可以出現的地方均可出現賦值表達式。

例如:式子x=(a=5)+(b=8)是合法的。它的意義是把5賦予a,8賦予b,再把a,b相加,和賦予x,故x應等於13。

4.在C語言中也可以組成賦值語句。

按照C語言規定,任何錶達式在其未尾加上分號就構成為語句。

I. 在C語言中,為什麼++i為左值表達式,而i++不是左值表達式

++i是直接給i變數加1,然後返回i本身,因為i是變數,所以可以被賦值,因此是左值表達式
i++現產生一個臨時變數,記錄i的值,在i的值被使用後,再後給i加1,接著返回臨時變數,然後臨時變數不存在了,所以,不能再被賦值,因此是右值表達式