1樓:匿名使用者
強制轉換的優先順序高於運算子
剩下的就是括號和四則運算次序了
a+(int)(b/3*(int) (a+c)/2)%41、(int) (a+c) 強制轉換
2、b/3*(int) (a+c)/2 自左向右依次進行3、(int)(b/3*(int) (a+c)/2 強制轉換4、(int)(b/3*(int) (a+c)/2)%4 資料取餘5、a+(int)(b/3*(int) (a+c)/2)%4
2樓:匿名使用者
先(a+c),然後強制型別轉換(int)(a+c);然後順序b/3* (int) (a+c)/2;再強制型別把前那個數轉為int型;之後求餘運算%4;最後執行加法運算。求採納
3樓:匿名使用者
1、b/3
2、(int)(a+2)
3、 步驟1的結果 * 步驟2的結果
4、 步驟3的結果 / 2
5、 (int)(步驟4的結果)
6、 a + 步驟5的結果
7、 步驟6的結果 % 4
4樓:豆兒媽育兒
第一步:運算(a+c)
第二步:運算(int)d
第三步:從左到右運算(b/3*d/2)
第四步:運算(int)(第三步的結果)
第五步:運算(第四步的結果)%4
最後,a + 第五步的結果
5樓:匿名使用者
在這個表示式中有括號、強制型別轉換、算術運算運算子。
括號優先順序最大,且由左到右順序,則先算(int)再算(b/3*(int)(a+c)/2),在運算過程中則先算(int)後算(a+c).
這樣括號就算完了,然後算強制型別轉換,把b/3*(int)(a+c)/2),轉換成int型別,在其中也把(a+c)轉換成int型別。
最後算算術運算子,先乘除求餘,從左到右。後加減也是從左到右。即可得到結果。
6樓:伏無
先執行(a+c),
然後是/2,
接下來是b/3和%4,
然後取整
接著算乘法,
最後相加。
7樓:有郊範圍
a+(int)(b/3*(int) (a+c)/2)%41.(a+c)
2.(int) (a+c)
3.b/3*(int) (a+c)/2
4.(int)(b/3*(int) (a+c)/2)5.(int)(b/3*(int) (a+c)/2)%46.a+(int)(b/3*(int) (a+c)/2)%4
[c語言][表示式計算][逗號表示式]表示式計算順序的疑問
8樓:龍不悔
首先我們看一下你的表示式b=a+(a=0,1);等式右邊算完值後賦值給左邊,而右邊的表示式版括號優先順序最高,
權所以先算括號裡面的逗號表示式,看看下面的解釋:
「c語言提供一種特殊的運算子,逗號運算子,優先級別最低,它將兩式聯接起來,如:(3+5,6+8)稱為逗號表示式,其求解過程先表示式1,後表示式2,整個表示式值是表示式2的值,如:(3+5,6+8)的值是14。
(a=3*5,a*4)的值是60。---來自百科」
那麼(a=0,1);的執行結果是a=0,而整個括號的結果是1,所以b=0+1=1.
對於第二個式子:b = (a=1,printf("1:%d\n",a),a)+(a=0,printf("2:%d\n",a),a+1)
右邊括號優先順序一樣,所以從左到右運算,第乙個逗號表示式(a=1,printf("1:%d\n",a),a)輸出為1:1;然後值為a,此時a=1,同理第二個式子輸出為2:
0,值為a+1,此時a=0;。那麼b = a+ a+1=0+0+1=1;就是這樣的。
9樓:匿名使用者
第乙個:bai執行b = a + (a=0,1); a先為0,也du就是b = 0 + 1
第二個:zhib = (a=1,printf("1:%d\n",a),a)+(a=0,printf("2:%d\n",a),a+1)
可以化簡為:b = a + (a = 0; a + 1 )還是:b = 0 + (0 + 1 )
我只dao能給乙個這樣版的解釋,權等高手
10樓:路易五十三
以彙編檢視檢視實bai際的操作:
1、duptr [ebp-4]置為
zhi0,ebp-4得到的dao是變數a的記憶體位址版,也就是a賦值為0了。權
2、暫存器eax置為ptr [ebp-4],也就是a的值放入暫存器。
3、add eax,1,就是eax寄存的值+1。
也就是說int b = a + (a=0,1);這條語句被理解成a=0;int b=a+1;。也不知道不同編譯環境下是否還有所不同?我一開始跟樓主想得也一樣,b的值應該是2。
具體的原因我也很想知道,期待高手詳解。不過b = a + (a=0,1);這種**只能用來研究,不提倡實際編寫,程式設計不是做密碼,容易歧義的東西會耽誤事的。
11樓:匿名使用者
1、對bai於
a = 1
b = a + (a=0,1);
在做+之前,其兩邊的操作du數一定是「值
zhi」,而不能dao是表達版式,所以表示式必須先進行求權值,至於先左後右還是先右後左求值,在ansi和iso標準中並沒有明確規定,所以平台的實現者可以依據具體情況自行決定,但有括號必須先計算括號中的內容,所以,a被賦予0,那麼b為1就是合情合理的了。
c語言中表示式的值怎麼算
12樓:墨汁諾
此式即等同於 (4!=3)&&(2)&&(4+1<5)1代表真,0代表非,則原式即 1&&1&&0 所以值為0。
例如:-12/5 = -2 只為這個是整數運算,結果只取整數部分。
62 1*(6+7) + 7 *(6+1) = 13 +49 623.2 *(6+7+1) = 44.8
13樓:
可以。逗號運算子,從左至右計算,取最後乙個表示式的值作為整個語句的值。
先算a=3,就是把a賦值成3,然後算b=4,對b賦值成4,最後計算c=a+b,實際就是c=3+4,c的值是7。最終整條語句的最後值就是c的值7.
14樓:匿名使用者
這是逗號表示式,整個表示式取最後乙個子表示式的值,比如d=(a=3,b=4,c=a+b),那麼d = c=a+b=3+4=7
15樓:匿名使用者
以上形式在c中稱為逗號表示式,整體的值為最後乙個表示式的值,具體詳情可參考百科介紹:
16樓:匿名使用者
逗號也是運算子,逗號遠算符的結果,就是最右邊表達示的結果
=也是運算子,這個達示的結果(c=a+b),就是等號左邊變數(c)的值,結果是7
17樓:成靈慧
7表示式從左到右,順序求值
真個表示式的值是最後乙個表示式的左值,
18樓:匿名使用者
可以c=7
(a=3,b=4,c=a+b)=(c=a+b=3+4)=(c=3+4)=(c=7)
19樓:
int a,b,c;
a=3;
b=4;
c=a+b;
printf("%d\n",c);
c語言計算表示式的值
20樓:戈遠源雅嫻
逗號運算子
左至右計算
取表示式值作整
語句值先算a=3,
a賦值3
算b=4,
b賦值4
計算c=a+b
實際c=3+4c值
7終整條語句值c值7.
21樓:匿名使用者
#include
#include
#define maxsize 99
void translate(char str,char exp) /*將算術表示式轉換成字尾表示式*/
op; /*定義乙個含data和top的結構體*/
char ch;
int i = 0,t = 0;
op.top = -1;
ch = str[i]; /*將str的每乙個數轉換成ch*/
i++;
while(ch != '\0') /*ch對應不同的符號的時候對應的轉換情況*/
op.top--;
break;
case '+':
case '-':
op.top++; /*恢復可插入位置*/
op.data[op.top] = ch;
break;
case '*':
case '/':
while(op.top == '/'||op.top == '*') /*優先順序*/
op.top++;
op.data[op.top] = ch;
break;
case ' ': /*忽略空格,排除誤操作*/
break;
default:
while(ch >= '0'&&ch <= '9')
i--;
exp[t] = '#'; /*分隔運算元,為了美觀,也為了以後好分隔運算元,呵呵*/
t++;
}ch = str[i];
i++;
}while(op.top != -1) /*得到剩下的部分*/
exp[t] = '\0'; /*表示式結束*/
}float cal_value(char exp)
st; /*運算元棧*/
float d;
char ch;
int t = 0;
st.top = -1;
ch = exp[t];
t++;
while(ch != '\0')
st.top--;
break;
default:
d=0;
while(ch >= '0'&&ch <= '9') /*從字尾表示式中獲取運算元,#作用在此體現*/
st.top++;
st.data[st.top] = d;
}ch = exp[t];
t++;
}return st.data[st.top];
}int main() /*可以提到前面去*/
22樓:宜凱尉馨
5<<2
41!=0
真(1)
!!3真(1)
107%10
73/2*2
2011>9
011(如果為二進位制數或八進位制則是
假(0),十進位制或十六進製制
則是真(1))
怎樣提高語言表達能力,怎樣提高語言表達能力呢?
充滿著信心。我們提高語言表達能力就需要時刻對自己充滿信心,不斷的利用各種機會來鍛鍊。多去閱讀。1 內向性格的人,有乙個很大的特徵就是不善言談,不懂得怎樣表達自己。但是不善於表回達自己答,不代表自己內心沒有什麼想法。所以,你現在所要做的就是將自己內心的想法如實的表達出來。2 如果你是學生,我想,改變自...
如何訓練語言表達能力,怎樣提高語言表達能力
要想迅速而高效的拓展你的語商,建議你遵循 四要四不要 的策略。1.要實在,不要花言巧語 說話和辦事一樣,都講究實在,不要一味追求使用華麗的詞藻來裝飾,更不要譁眾取寵。2.要通俗,不要故作姿態 說話要避免深奧,盡量使用大眾化的語言,像俗語 歇後語 幽默笑話等,這樣,你辦起事來可能會事半功倍。3.要簡明...
怎麼樣提高語言表達能力,怎樣提高語言表達能力
現代社會對我們的表 bai達能力越來越du重視,那我們該如何提zhi高自己的表達能dao力呢?首先版我們要有語言邏輯,其次 權語言邏輯的結構要清晰,有個很簡單的結構 觀點 論據 論點。最後保持練習,通常在1周到1個月,你的表達能力就會有所提公升!你首先要知道你想說的是什麼,熟練的掌握它,能夠做到毫不...