1樓:
不太清楚你的意思是問這段**是什麼意思
還是#define add(x,y) x+y ?
如果是後者,#define的本質其實是乙個代換即編譯後add(x,y) 將被替換為 x+y對這段**來說 add(x + 1,y + 2) 即為 x + 1 + y + 2
x,y都被初始化為 2
所以s的值為8=2 + 1 + 2 + 2 + 1
2樓:
巨集定義是直接字串替換
所以s=add(x+1, y+2)+1就變成:
s=x+1+1+y+2+2+1;
一般巨集定義最好對引數加個括號
#define add(x,y) ((x)+(y)),這樣就可以避免運算子的優先順序高低帶來的運算結合順序問題。
3樓:程曉絲
結果7,add這是乙個帶引數的巨集,x(2).相當於x=2,就是賦值而已,把引數帶進巨集中,2+1+2+1=6,之後再加一。
4樓:匿名使用者
結果為8
add(x+1,y+2)===>add(2+1,2+2)===>add(3,4)===>3+4
最後再加1=8
5樓:匿名使用者
int x(2),y(2),s;是定義了3個整型變數,x=2,y=2。
s=add(x+1,y+2)+1;等同於s=x+1+y+2+1;因為在**最開始有個巨集定義。
下面就是輸出。
c語言逗號表示式:(y=6,y+1,x=y,x+1)答案是什麼啊,求詳解
6樓:匿名使用者
逗號運算子運算順利是從左到右,先計算第乙個表示式,再計算第二個,依回
此類推。將最後一答個表示式的值作為整個表示式的值。
:(y=6,y+1,x=y,x+1) 先將6賦值給變數y,再將y+1的值作為表示式2的值,再將y的值賦值給變數x(此時y的值還是6,所以x是6),最後乙個表示式x+1的值是6+1,所以整個表示式的值為7
7樓:匿名使用者
y=6,y+1=6+1=7.x=y=7,x+1=7+1=8
8樓:
86賦值給y,y+1=7,y(7)賦值給x,x+1=8
c語言(x=y=6,x+y,x+1)是什麼意思
9樓:成侯花園
首先,這是乙個逗號表示式,執行法則:從左到右依次運算,取最後乙個表示式的值作為這個逗號表示式的結果值。所以運算過程如下:
6賦值給y,y賦值給x(賦值運算子「=」按照自右向左運算),x與y相加(但是x與y的值仍為6),x加1結果為7。最後本逗號表示式結果為7。
10樓:興星鑫
逗號表示式,從左至右依次計算表示式,然後取最後乙個表示式的值,作為整個逗號表示式的值
11樓:wmy丶未知屬性
x的值與y的值相同等於6,所以x+y=6+6 x+1=6+1
12樓:吳韋水海白
x%=6相當於x
=x%6,也就是本身和6取餘,再複製給本身。這個y/(x%=6)表示y除以x和6取餘的結果
(x+y+1)(x+y-1)
13樓:
(x+k)(x-1)=k(x+1)
14樓:寵愛此生
=(x+y)²-1
=x²+2xy+y²-1
c語言中,x-=y+1是x=x-y+1,還是x=x-(y+1)呢?
15樓:匿名使用者
在賦值語句中,表示式是從右邊開始計算的,也就是說
x-=y+1,先計算tmp=(y+1),然後x-=tmp。所以說結果是
x=x-(y+1)
16樓:匿名使用者
x-=y+1;
x是被減數,等式右邊是減數。
因此x-=y+1;等價於x=x-(y+1);
這裡根本談不到什麼優先順序的問題。x是被減數,等式右邊是減數。
17樓:
+的優先順序高於+=所以先算y+1, 再算+=
於是,後者是正確的
x-=y+1 相當於 x=x-(y+1)
18樓:匿名使用者
是的,所以後才是x=x-(y+1);
19樓:聊慶赫連含菸
根號x-根號y與根號x+根號y互為倒數
所以(根號x-根號y)(根號x+根號y)=1
則x-y=1選擇b
c語言中語句「y=x++ -1」是怎麼執行的
20樓:埃德蒙
++放後邊 x先參與「-」運算 計算結果賦給y 之後x值自增1。
如果x=3,「y=x++ -1」之後y=2 x=4就是要記住乙個規則:
++在變數之前時 值先自增1 再參與其他運算,++在變數之後 先參與其他運算 變數值再自增1
21樓:關燁韋
先執行x-1,然後再賦值給y,然後再x++。
如果換成y = ++x - 1;就會先自增,再運算。
22樓:匿名使用者
y=x++-1的彙編**如下:
mov eax,dword ptr [ebp-4]sub eax,1
mov dword ptr [ebp-8],eaxmov ecx,dword ptr [ebp-4]add ecx,1
mov dword ptr [ebp-4],ecx不知道你能否看的懂。簡單的說,dword ptr [ebp-4]表示的是x的位址,dword ptr [ebp-8]表示y的位址。mov是移動的意思,也就是說把x的值移動到eax中,然後減一,再把它賦值給y;……好好學習彙編吧,這些問題完全可以自己看**解決!!!
23樓:
先x自加 然後用x原來的值-1賦給y
比如先開始x=5
執行完 x=6 y=4
24樓:我愛吃油旋
「y=x++-1」應該等同於
「y=x-1;
x=x+1;」
即y的值是x-1後的賦值,然後x再自加1.
25樓:du小蝦
x=4;
y=x++-1;//執行完後,y是3,x是5,注意x++先運算後加一
c語言中,y-1=x+1為啥是不合法的表示式
26樓:匿名使用者
賦值運算子要求左運算元是乙個可修改的左值,可以簡單的理解為是乙個可修改的變數,顯然表示式y-1不是乙個可修改的變數
27樓:旅初彤
沒有這樣寫的,=號左邊是變數名,右邊可以是值,可以是表示式,你不能直接把這個表示式的值賦值給另外乙個表示式,必須用變數才行
C語言中y1是什么意思,C語言中y 1是什麼意思
先說 吧,是一元運算子,如果 運算子位於變數的左邊,那麼在變數所在的表示式未進行計算之前,先將該變數減少1,如果位於該變數的右邊,就在表示式運算完成之後再減少1。還有乙個和這個符號類似的 也類似。這裡的y 1,如果你想看起來好看些,應該寫成 y 1,就是這麼乙個意思。舉例說明 intx,y 3 x ...
C語言問題,intx1,y1,z1xyzxyz的值是多少
x 0y 1 z 1原因是 x y z 中,是邏輯與運算子。程式執行時會先判斷 左邊的部分,如果內左邊部分為真,再判斷右容邊部分。左邊的部分是 x 也就是讓 x 先自減 1,即 x 為 0 邏輯運算時 0 被當作 假 來處理。邏輯與運算時有一項為假,結果必為假,因而不用再判斷右邊的部分。所以 右邊的...
理解不了C語言增減,理解不了C語言增1 減
a在輸出 如 printf d a 或賦值 如 b a 時 都是先把a 1,再把值給另乙個數。a 在輸出 如 printf d a 或賦值 如 b a 時 都是先把值給另乙個數,再把a 1。如 a 3,那麼b a時a就先加1後等於4,然後把值賦給b b 4,a 4 a 3,那麼b a 時 a就先把值...