C語言中y ab a b 1運算結果是什麼和 是什麼意思?求詳解

2021-04-22 02:19:49 字數 6439 閱讀 5568

1樓:天雨下凡

表示式1?表示式2:表示式3

以上是三元運算子,c語言中唯一的乙個三元運算子如果表示式版1的結權果為真

,則返回表示式2的值,否則返回表示式3的值y=a>b?a:b+1

如果a>b,那麼y的值為a,否則y的值為b+1

2樓:郝利葉辛卿

a=1,逗號只是留下右邊的b=

++a,a先自加1變成2,給b賦值,2作為整個賦值表示式的值

因為2是逗號最右邊表示式的值,因此給y賦值,y的值也是2

a:=b+1在c語言裡是什麼意思!求大神指導

3樓:南韓伊銳銳

:= 是 pascal 語言中來的賦值操作符源,a := b + 1 表示把 b + 1 的值賦給

bai a。c 語言賦值語句是du a = b + 1。pascal 比較

zhi用 =,如dao if (a = b),在 c 語言中比較用 ==,如 if (a == b)。

c 語言中用到 : 的地方只有這乙個條件表示式:表示式 ? 表示式1 : 表示式2。

如表示式結果為真,該語句的結果為表示式1,否則為表示式2。如:

x = a > 10 ? 10 : b;

c = a > b ? a : b;

與 if、else 的作用類似。

4樓:倒霉熊

這肯定不是c語言吧

a=b+1;這是c語言的語法。

a:=b+1 好像在php 或 pascal中見過 記不清了

c語言中max=a>b?a:(b+1)什麼意思?

5樓:柏新星

max=a>b?a:(b+1)

max:變數 得到的結果會存到這裡

a>b 判斷a是否大於b

如果 大於 則max=a

否則 max=b+1

6樓:匿名使用者

這個表示式是乙個冒號表示式,它的原理是:先計算問號前面的值,如果是真值,則執行冒號前面的語句,將結果作為這個冒號表示式的最終值;如果是假值,則執行冒號前面的語句,將結果作為這個冒號表示式的最終值。

這個冒號表示式的意思是,比較a和b的值,如果a>b成立,則max=a,反之max=b+1。

我的回答就是這些,謝謝!!

7樓:唐

是乙個比較指令,判斷a是否大於b.如果a>b.則輸出a的值.如果a不大於b.則輸出b+1的值

8樓:匿名使用者

意思就是 max的值等於 a>b?a:(b+1) a>b嗎?如果大於就等於a,不大於就等於b+1

9樓:麗戀熊

o(︶︿︶)o 唉,簡單的這麼多人回答,難的沒人回答。。。

10樓:哈哈喂七号

a>b如果為真,則冒號前的a賦值給max,否則是b+1

11樓:匿名使用者

若a>b,把a賦值給max,反之,把(b+1)賦值給max。

12樓:匿名使用者

if (a > b)

else

13樓:匿名使用者

這段程式等於:

if (a>b)max=a;

else max=(b+1);

14樓:匿名使用者

若a大於b取a的值,否則取b的值

15樓:匿名使用者

如果a>b,那麼max=a;

如果a《=b,那麼max=b+1;

c語言中 *b=&a什麼意思 *b和&a分別是什麼含義啊?

16樓:秋楓

*b=&a這種寫法只有在定義時這麼寫才對,例如 int *b;*b=&a;是錯誤的,正確的是int a=1;int *b=&a;意思是說定義乙個指標b,b裡存的是a這個變數的位址。如果定義好了乙個這真b,那麼*b就指b這個變數裡存的位址裡的值(有點繞口,慢慢理解),&為取位址符,&a就是a這個變數的位址。

17樓:匿名使用者

說明b是乙個指標變數,其定義應該是這樣:int *b,a;

*是取值運算子,*b就是取b指向儲存空間的值;

&是取位址運算子,&a表示取變數a的位址。

*運算子後面應該跟指標;而&後面應該跟變數名(或陣列元素,或結構體變數.成員名)。

18樓:餡嘍嘍嘍

(a>b)?a:b

表示如果a>b為真,則取

問號後邊的第乙個值,這裡是a

如果a>b不為真,則取問號後邊的第二個值,這裡是b

《表示式1>?《表示式2>:《表示式3>; "?

"運算子的含義是: 先求表示式1的值, 如果為真, 則執行表示式2,並返回表示式2的結果 ; 如果表示式1的值為假, 則執行表示式3 ,並返回表示式3的結果。

若a-b非零值(即a-b邏輯值為1)則輸出a值;若a-b為零值(即a-b邏輯值為0),則輸出b值。

/  代表的是 除法。如果 a 和 b 都是整數,不是 float 等這種浮點數,所以結果只保留整數,所以  a/b 算出來是整數。

另外,% 代表的是取餘數,即: 5%3 等於 1 餘 2,結果就是 2

19樓:黑夜巫女

b是乙個指標變數,*b = &a是b裡存的是變數a的位址

c語言中c=(a+b,a++,b+1);什麼意思

20樓:匿名使用者

逗號表示式的取值,是最右邊乙個表示式的值

程式先計算逗號表示式最左邊的式子a+b,計算結果沒有儲存,對a,b,c的取值沒有影響[a=1,b=2]

然後計算a++[a=2,b=2]

然後計算b+1[b+1=3,a=2,b=2],計算結果會當作整個逗號表示式的最終取值賦值給c[a=2,b=2,c=3]

21樓:匿名使用者

逗號運算子的作用,取最後乙個,所以結果會是後面的。

相當b=b+1;

//因為是a++,所以忽略

c=b;

22樓:邪眼王·飛影

(a+b,a++,b+1)是逗號表示式,從左到右執行,值為最右邊的,b+1=3,結果為3

c語言中a%b?b:a什麼意思

23樓:匿名使用者

這個是交換兩個變數值的**.

假定 a的初始值是a b的初始值是b, 那麼目標就是a=b b=a先做 a=a+b = a+b

b=a-b=a+b-b=a

到這裡 b=a實現了.

然後就需要 a=a-b=a+b-a=b 這樣才可以實現交換.

用乘除也可以,比如

a=a*b;

b=a/b;

a=a/b;

這樣也可以達到效果.

24樓:北京泗洪人

a+++++b,應該理解成:(a++) + (++b)。

這涉及到「左值」的問題。轉一段「百度百科」裡關於左值的說明:

左值(lvalue) 是b語言/c語言/c++語言等類c語言中的一類表示式。「左」(left)的原意是指可以放在賦值符號「=」的左邊,但其實也表示能作為&和++等操作符的運算元(b語言中已經如此)。而且,現代c/c++中的含義已經不侷限於此。

lvalue的l被重新解釋為location。這也對應於iso c11/iso c++11的記憶體位置(memory location)。

總結:a存在左值,可以有表示式:a++。但是(a++)不存在左值,無法繼續執行(a++)++操作。

25樓:匿名使用者

這是 (a%b)?b:a

其中 a%b 是 a除以b取餘數,

若不等於0 (也就是b不整除a)就當成立, 整個式子是取b的值.

若等於0 (也就是b整除a)就當不成立, 整個式子是取a的值.

26樓:super丶

a+++++b在編譯時會報錯,(a++)+(++b)和a++ + ++b不會報錯

「a+++++b」這一段根本就

無法解析,編譯系統從左至右掃瞄整條語句,先遇到a++,判斷出來是乙個a的字尾自加運算,然後接著掃瞄,遇到乙個+,+是乙個二目運算子,它的左邊已經有乙個運算數a++了,系統就向右搜尋第二個運算數,又遇到乙個+,++比+的運算級別要高,這時,編譯系統就將兩個+看成乙個整體來處理,既然是++,編譯系統就認定,肯定它的左邊或右邊有乙個變數,編譯系統先搜尋左邊,發現++,不是變數,再搜尋右邊,發現+b,+b是什麼東西?編譯系統是無法搞明白的,因此它就認為++是乙個缺少左值的自增運算子,於是提示提示使用者:』++』 needs l-value

另外,假如定義int a = 1,b = 2;

c = a++ + ++b;

1:先執行b自加,b變為3;相當於:b = b+ 1;

2:求a與b之和,賦給c;相當於:c = a + b ;//c = 1+3;

3:執行第二步之後,a自加1:a++;

4:如果要輸出的話,(按執行順序)

b = 3;

c = 4;

a = 2;

27樓:

(a++)+(++b)

= a + (b+1)

注意區分a++和++a

a++先用a的值賦值之後再進行++操作

++a是先++之後在進行賦值操作

如上圖:

a = 2; ---> a++;   // a = 2b = 3; ---> ++b;   // b = 4

28樓:匿名使用者

如果a能整除b,則結果為b,否則結果為a

29樓:崔玉巧求香

就是a除以b的餘數等於0的意思,即a能被b整除。

它等價於!(a%b!=0)

也就是a%b==0

30樓:匿名使用者

首先你要明白什麼是表示式,還有變數。

a是乙個變數。

a++,++a都是a加了1.

比如a原來是1,執行了a++或++a後,a變數的值就是2了

至於a++和++a的區別主要是在表示式上的區別。

++a是先執行了a加1後,參與表示式的計算。

a++是a先參與表示式的計算,後執行自加1.

比如:int a,b;

a=1;//如果你想把a的值1,付給b.那麼,但你又想使得a加1。你就可以這麼做

b=a++;//++在a之後,先把a的值付給b,然後再本身加1 。這時候b=1,a=2了。

//如果你還不懂得話。b=a++;的意思 就是b=a;a=a+1;這兩句意思

//而b=++a 就是 a=a+1;b=a;的意思

至於a++=a+a+1

好像寫錯了吧

是a+=a+a+1

優先順序等於 a=a+(a+a+1)//a+=b 是 a=a+b 的簡化

!= 不等於,是條件運算子,用來判斷真假的。

比如1!=2; 表示式的值就是假,也就是0;

c語言很多式子都是簡化的,這樣雖然可以節省**,卻比較讓人糊塗。

31樓:匿名使用者

a++就是運算後+1,在表示式裡面的時候還是a而++a就是先a+1然後代入表示式計算。

!=是不等於的意思

c語言中執行語句:b=a-b?a:b-1;是什麼意思?

32樓:匿名使用者

此表示式和以下**實現是一樣的

if ( a - b != 0 )

b = a;

else

b = b-1;

33樓:隔壁九大爺

這是乙個三目表示式,如果b=a-b成立,就等於a,否則等於b-1.

c語言中 *b=&a什麼意思? *b和&a分別是什麼含義啊?

34樓:餡嘍嘍嘍

(a>b)?a:b

表示如果a>b為真,則取問號後邊的第乙個值,這裡是a

如果a>b不為真,則取問號後邊的第二個值,這裡是b

《表示式1>?《表示式2>:《表示式3>; "?

"運算子的含義是: 先求表示式1的值, 如果為真, 則執行表示式2,並返回表示式2的結果 ; 如果表示式1的值為假, 則執行表示式3 ,並返回表示式3的結果。

若a-b非零值(即a-b邏輯值為1)則輸出a值;若a-b為零值(即a-b邏輯值為0),則輸出b值。

/  代表的是 除法。如果 a 和 b 都是整數,不是 float 等這種浮點數,所以結果只保留整數,所以  a/b 算出來是整數。

另外,% 代表的是取餘數,即: 5%3 等於 1 餘 2,結果就是 2

c語言中intm3xm結果是,c語言中intm3xm結果是

m 3,x m 在執行第二行的時候,m 了,所以m變成4 在執行x m 的時候,由於m還沒有 所以相當於x m所以x 3 所以結果是m 4,x 3 運算子放在m的後面,表示先進行運算然後再是m自增1。因此答案應該是 3 m的值是4。樓主可以仿照樓上那樣編個程式試試。include void main...

C語言下面程式的執行結果是

x的值是每次來在執行迴圈體源第乙個語句進行賦值的。bai每個if語句都是du先加加,然zhi後再模2,模3,模7。全部條件滿足dao後,才會輸出x。計算的並非是x的原始值,而是計算的三次加加後的x的值。比如輸出28的時候,i的值是25,那麼此時x的值也是25。首先進行第乙個判斷,因為是前加加,所以對...

s1在c語言中是什麼意思c語言中,si1是什麼意思?

在c語言中,運算 符和運算元按規則結合構成表示式,這裡的規則包括兩方面 1運算子的優先順序,2.運算子的結合性。在這個表示式中,就涉及到 和 兩個運算子,其中 的優先順序高於 所以s先與 結合組成表示式 s 這就代表了指標變數s所指向的變數了 接著這個整體在於 以及後面的1結合,那就是把s所指向的變...