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所指向的變...