c語言中,inta 3,b 2,c 1,為什麼賦值語句a b c 1錯誤了

2021-10-07 19:11:05 字數 4075 閱讀 2606

1樓:

賦值語句沒有錯,錯的應該是變數的說明語句:inta=3應該在變數與型別說明符間加空格以示區別:

int a=3,b=2,c=1;

2樓:

沒有錯啊。

#include

int main()

3樓:匿名使用者

inta=3 這個連起來寫已經錯了。。。

當然,排除你是筆誤。

a=b=c+1,是合法的。沒有錯誤。在vs 2010中可以編譯通過。

4樓:匿名使用者

因為a!=b,這是你給的題目邏輯問題,

但是編譯的時候你那個賦值應該能編譯,沒錯才對。lz你多檢查吧!

5樓:匿名使用者

a=b=c+1的意思是,首先計算出c+1等於2,c的值不變,然後執行b = (c + 1),b變成2,然後執行a = (b = (c + 1)),a的值變成2。

6樓:你不愛歐文

這是語法的問題,也就是規定,具體說就是變數不能在=號的右邊。你這個b在a的右邊了就錯了

7樓:匿名使用者

該語句本身是沒有問題的,你需要提供更錯誤資訊,才能幫你找到錯誤的所在!

8樓:金陵跳跳爸

b=c+1;

a=b;

非常數複製不能用連賦形式的。

9樓:匿名使用者

用vc 或者vs試試 有些編譯器規定的 不能這麼賦值要單獨賦值才可以

10樓:匿名使用者

樓豬,自己寫錯了,哈哈

11樓:匿名使用者

我在vc6.0上試了一下,沒有錯啊

c語言中,inta=3,b=2,c=1,為什麼賦值語句a=b=c+1錯誤了?

12樓:喜伶赫驪英

賦值語句沒有錯,錯的應該是變數的說明語句:inta=3應該在變數與型別說明符間加空格以示區別:

inta=3,b=2,c=1;

13樓:花逸百榮軒

首先「==」的優先性要小於「<」,所以表示式「a==b

14樓:向軼勾飛燕

a=b=c+1的意思是,首先計算出c+1等於2,c的值不變,然後執行b=(c

+1),b變成2,然後執行a=(b

=(c+1)),a的值變成2。

15樓:斯璧完顏姿

沒有錯啊。

#include

int main()

int a=3,b=2,c=1; 錯誤的賦值表示式是 a.a=(b=4)=3 b.a=b=c+1

16樓:聽不清啊

因為bcd都是語法上正確的賦值表示式。

而a是語法錯誤的,編譯不能通過的。

c語言賦值表示式問題:若定義有語句:int a=3, b=2, c=1; 以下選項

17樓:滄海雄風

a錯了,不能將3賦值給表示式,b=4已經是個表示式了,既然是表示式就只有真假(即0和1),

而 (a=3*5)=4*3 中的a=3*5 是賦值

18樓:匿名使用者

我在vc++6.0中貼上你的**,編譯執行都通過#include

int main()

結果2 4 4

19樓:匿名使用者

賦值語句的物件只能是變數,而不是表示式 b=4已經是個表示式。若換成a=b=3,就對了。

對於b,最後的值:a=2,b=2,c=1

對於c,整個語句是個賦值語句,裡面又巢狀了個b=4的賦值語句,所以,最後的結果是a=5,b=4,c=1

對於d,解法同c,a=5,b=4,c=4.

所以a 是錯誤滴。

c語言 若有定義語句 int a=3,b=2,c=1; 一下選項中錯誤的賦值表示式是 a a=

20樓:匿名使用者

c語言中,賦值號左邊只能是變數,而不能是表示式,答案a中,最右邊的賦值號它左邊是一個表示式(因為b=4使用了括號)而不是變數,所以是錯的

21樓:匿名使用者

a 已經驗證過了,需要左賦值!

22樓:一劍傾心頂你

選a這個題要考慮運算子的優先順序,

+-*/優先於=

而且=運算子從右往左算

c語言中,是如何賦值的?a=b+c=1為什麼是錯的?

23樓:剛哥不會文明

賦值端左面只能是一個儲存資料的符號。。你這裡1賦值給b+c,這是不行的。b+c不是一個儲存資料的符號。

我建議你買本清華大學c++版的工具書,譚浩強出的。。那本書裡比較詳細。

24樓:上虞潘永傑

在c語言中只能給變數賦值,不能給表示式賦值,你這個式子的運算順序是從右到左,1是不能賦值給表示式b+c的

25樓:匿名使用者

a=7+b+c=a+7; //不符合,因來為7是const也就是源常量型別,不可以bai對其賦du值,zhi7+b+c含有常量,對其賦值也是錯誤的

daoc=7+b++=a+7; //同上

a=a+7;//可以

---------------------------------------

b++=7是可以運算的,先賦值b=7,再加1

26樓:蛇的獨孤

因為賦值是賦值給變數的,而b+c不是變數……a=b+c是對的,但是b+c=1是錯誤的

27樓:匿名使用者

vb中賦值的話,應該是"變數=值"的形式,只能是"a=1"

c語言中a=b,意思是說把b賦值給a,還是說把b裡面的值賦值給a?

28樓:墨汁諾

當a和b為普通變數時, a=b,是把b的值賦值給a, b不變;

當a和b為指標時, a=b, 是把b的指向回賦值給答a, 讓a也可以指向b的指向,b的指向不變;

比如 a=1 b=2 c=3,把b賦值給a 就是 a=b 因為b是等於2的 現在 a=b=2。

把b值賦給a指的是把b的值代入a裡,打個比方,a=b,而b=100,那麼,在這個式子中,把b值賦給a就指的是a=b=100,也就是a=100。

29樓:姚老頭兒

把b裡面的值賦值給a,更準確!一般嫌麻煩簡單的說:b賦值給a,同時b還是原來的值,a改變了!

30樓:獵人的背後

是說把b賦值給a

但是b還是原來的值

若有定義語句:int a=3,b=2,c=1;,以下選項中錯誤的賦值表示式是( ) a)a=

31樓:滑雅僕文軒

a錯了。你只需要把握一點,對於賦值表示式來說,賦值號「=」的左邊一定為變數名,右邊為一個c語言合法的表示式。

有問題就追問。

why選a?語句int a=3,b=2,c=1;錯誤的賦值表示式是 a.a=(b=4)=3; b、a=b=c+1; c.a=(b=4)+c d.a=1+(b=c=4)

32樓:201求一份安逸

a=(b=4)=3;這是賦值運算,bai從右至du左結合,但是zhi

這裡有括號b=4會被先執行,執dao行完後結內果為false(零)這容裡沒有問題,後面a的賦值就有問題了,到底是把0賦給a,還是將3賦給a呢?問題在這,你懂了嗎?

33樓:匿名使用者

a=(b=4)=3

先運算 b=4 結果為false 即 0

a=0=3

不是合法語句

c語言中int a 1,b 3 switch a bcase 1 printfncase 2 1 printfn 對麼?詳解

include int main 這是我自己理解之後寫的,switch語句中case後要加break,case的所有情況寫完後還要加default語句,表示除 內case外的情況發生容時要怎麼做。本程式就沒有等於a b的情況,需要default語句。case 1 printf n break 分號後...

在C語言中,設有如下定義 int a 1,b 2,c 3,d 4,m 2,n 2則執行表示式 m abn cd 後,n的值為,過程

n的值抄仍然為2,沒有改變!過程 先計算a b,值為0,賦給m的值為0,表示式m a b的值也是0。對於 邏輯運算,不管後面 n c d 的值如何,都不影響 m a b n c d 的最終結果,因此,c語言不再對表示式n c d進行計算。因而n的值沒有改變!n的值為2 a 1,b 2 m a b m...

在C語言中mainint a 1,b 2,c 3 printfd,d,d,d n ,a b c,a b c,ab c ,ab c執行結

a b c 將c的值3賦給b,再將b c的值3賦給a,整個表示式的值是3 a b c vc2005測試結果是3,我自己算應該是1,這個我不是很清楚。a b c 先判斷b c,結果是1,再判斷a 1,結果是0 a b c 先判斷b c,結果是1,再判斷a 1,結果是0 a b c,a b c,a b ...