1樓:記住一座城
:必須和?一起作為三目運算子用,不能單獨用。
c語言新手求教幾個問題: 1、a=a+7=c+b為什麼語法錯誤?
2樓:龔煒林
你好!1、等號是賦值運算,這就意味著等號左邊必須是被賦值的變數,顯然a+7是表示式,而不是變數。
2、整形運算是隻取整數部分的,你定義的c1,c2,c3均是整數,所以;c3=;進行的是整形運算,那麼只取整數部分就是0.
3、注意:在浮點型與整形等混合運算時,系統會將所有型別的資料轉化成double型的來運算,然後把結果再根據需要賦給響應變數。
對於你的表示式,c是float的,所以最後結果是要被轉化成float賦值給c。
4、逗號運算子,又稱順序求值運算子,但是要區分這個順序,這裡的順序指的是表示式,逗號運算子使用形式是:表示式1,表示式2,..
這就是說逗號隔開的是表示式,那麼對於i=(a=2*3,a*5),a+6;就可以理解了:i=(a=2*3,a*5)是乙個表示式,a+6是另外乙個表示式。
3樓:校花丶窼頿齔
這個式子會從右到左依次賦值。
c語言賦值語句"a=(7+b,b++,a+7)"語法錯在**?
4樓:黃邦勇帥哥哥
少個分號也是乙個錯誤,但可能不是。
樓主真正想問的錯誤。
依樓主題意,這是乙個賦值專語句,屬既然是賦值語句,那麼也就是說變數a還沒有初始,因此你的這個語句就是錯誤的。解釋如下。
a=(7+b,b++,a+7) 假設b是有初值的,因此7+b;和b++都沒有錯誤,但是a是正在被初始化的變數,因此a還沒有初值,因此a+7就是錯誤的,因為a還沒有初值,所以在進行初始化之前不可以進行運算。所以這裡是錯誤的。
5樓:網友
後面缺少分copy號來結束這個賦值語句bai。
a=(7+b,b++,a+7);
其實這個賦值語句相當du於先後執行以下zhi語句:
7+b; //這個語句無意義。
b++;a=a+7;
也就是將最後dao乙個a+7的值付給a。
因為連續用逗號分割的若干個表示式的值等於最後乙個表示式的值。
6樓:網友
這是乙個用逗號表示式賦值的語句,表意不明確。
因為c標準並沒有規定逗號表示式的求值順序,所以可能先計算b++,也可能先計算7+b,所以此語句意義是編譯器有關的。
7樓:網友
他是乙個語句,那麼就該以分號結束(;)
a=(7+b,b++,a+7);
8樓:**
少個;號 這是個語句 語句必須以;號結束。
在c語言中,若變數已正確定義並賦值,則該表示式 a=a+7=c+b 有誤嗎?怎麼解釋。
9樓:網友
#include
int main(void)
如果如上編寫程式,則無輸出;
a=a+7;語句為正確的。
而a+7=b+c;語句為錯誤的。
如果寫成a=a+7=c+b;同樣也會出現錯誤若改為#include
int main(void)
則結果為:10 6 9
10樓:星語心願
這種寫法相當於: a+7=c+b;
a=a+7;
第一句肯定不對。
11樓:
有誤,a+7是表示式,屬於右值,不能在等號左邊。
12樓:網友
當然有問題,第二個等號左邊是乙個運算,那麼右邊的值要給誰呀,所以左邊一定是乙個變數,不能是乙個運算。
13樓:
錯了,賦值運算是右結合(從右到左),等號右邊只能常量或是常量表示式。
c語言題目:若變數已正確定義並賦值,為什麼「a=a+7=c+b」不符合c語言語法的表示式?
14樓:網友
a+7=c+b是錯的。
等號左邊只能是變數,不能有常量。例如:7=b; 這樣賦值是錯的。
15樓:天地梅花開趙
是錯的。
等號左邊只能是變數,不能有常量。
c語言的問題
16樓:網友
第一題,你的**輸入有問題,你有兩個回大括號}而只有乙個大括號{,所以我無法判斷你的if在**結束,這樣的**是不對的,請你查閱你的題目吧**補充完整,另外,如果在if裡面巢狀if,請使用縮排格式,否則的話**不清晰會讓人無法搞清楚你的if之間的關係,請你修改第一題的**,第二題的輸出是:
你的printf函式中的**的意思是,將abc三個變數以float型別輸出,小數點後有兩位,同時每個資料佔據五個空位,整段**是對abc進行了乙個排序。
17樓:p白馬公主
1.一樓說的不無道理 但是第乙個**並無語法錯誤。如果確定沒寫錯的話,結果應該是5,因為第二個if跟else匹配。
第乙個if包括了第二個if和else。所以不滿足條件,結果是5.
2.第二道題,顯然是三個數的重新排序,a,b,c分別從小到大排,結果是 1 3 7
c語言賦值語句 a=7+b,b++,a+7; 這條語句合法嗎
18樓:網友
如果題目本身已經對b賦初始值,那麼這條語句就是正確的。如果題目並沒有事先對b賦初值,那麼這條語句就是錯誤的。所以不要斷章取義。
19樓:網友
不會法呀!變數要在用之前定義,a,b你都沒定義,肯定不合法呀!
int a=0,b=0;a=7+b;b++;這樣就合法啦;
20樓:淦海瑤
這是考驗逗號運算子,這個合法。
21樓:
如果之前定義了a 和 b 的屬性 就是合法語句。
若變數已經正確賦值,以下符合c語言語法的表示式是:1,a=b+1;2,a=b=c+2 3,int18.5%3 4,a=a+7=c+b
22樓:網友
不考慮分號的話,1和2是對的。1不用說了,2是可以的,2的執行順序是將c+2的值賦給b,然後將b賦值給a,這樣連續賦值是可以的。4不可以是因為表示式a+7返回的不是左值。
23樓:認不倒你
答案是1。
2:少「;」
3:少「()
4:a+7不能被賦值。
c語言中,是如何賦值的?a=b+c=1為什麼是錯的?
24樓:剛哥不會文明
賦值端左面只能是乙個儲存資料的符號。。你這裡1賦值給b+c,這是不行的。b+c不是乙個儲存資料的符號。
我建議你買本清華大學c++版的工具書,譚浩強出的。。那本書裡比較詳細。
25樓:上虞潘永傑
在c語言中只能給變數賦值,不能給表示式賦值,你這個式子的運算順序是從右到左,1是不能賦值給表示式b+c的。
26樓:網友
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
27樓:蛇的獨孤
因為賦值是賦值給變數的,而b+c不是變數……a=b+c是對的,但是b+c=1是錯誤的。
28樓:網友
vb中賦值的話,應該是"變數=值"的形式,只能是"a=1"
c語言中ab怎麼算,在C語言中ab是什麼意思啊
表示異或,就是對應的bit如果不相同,則結果為1 a b的含義就是把a和b轉換成2進位制的bit,然後按位異或 例如 3 5 00000011 00000101 00000110 6 如果資料小 加入 include int pow a,b 就是a b的值 如果資料大 用高精度乘 b a 1 a 1...
請問C語言中,1,請問C語言中,
是求餘數的意思,a b也就是a除以b餘幾 1 2 0餘1,那1 2 1 這裡 是取餘數的意思 1除以2 餘數就是1咯 計算步驟的話。cpu有直接的整數除法指令,商和餘數分別放在不同的暫存器裡。這些都交給編譯器了,我們不用理了 取模運算。也就是1除2的餘數?結果 1 除數是2的時候很特殊.a 2 等同...
c語言中語句ab是什麼意思C語言中語句ab是什麼意思
先解釋一下 和 是 什麼意思 的意思是 左值和右值相加結果賦值給左值如 a 1 b 2 a b 後,a 3 b 2。的意思是變數自加1,如a 1 a a的值是2,在c中,有前置和後置如 a a 單獨使用的時候是沒有區別的,都是自加1,在有運算時就有區別了,前置的 是自加後才參與運算,後置的 是參與運...