C語言add x 1,y 1 ,C語言 add x 1,y

2022-05-22 14:25:02 字數 3599 閱讀 3608

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就先把值...