int x,y,z x y z 1xyz是如何執行的

時間 2021-07-01 01:14:21

1樓:聽不清啊

int x,y,z;x=y=z=-1;++x&&++y||++z的執行過程是這樣的:

++x時,先取x的值自增後為0(為假)。由於運算子為&&(邏輯與)所以後面的++y已經不需要做了。

又由於後面的運算子為||,所以還需檢測後面的值。於是做++z的檢測。z先自增,變為0(為假)。參與“邏輯或”的兩個值都是假,所以,整個表示式的值為假。

又由於x和z兩個變數的值參與了檢測,自增為0,而y沒有檢測,值仍為-1。

上面的分析可以用一個簡單程式加以驗證:

2樓:全魁紀高寒

intx,y,z;

x=y=z=-1;xyz都-1

++x&&++y||++z相於(++x&&++y)||(++z)先++x

x=0則&&右邊++y執行

表示式(++x)&&(++y)=0

所x=0

y=-1

接著0||++z

算右邊++z

z=0整結0

x=0y=-1z=0

3樓:

x=y=z=-1可以給x,y,z同時賦值為-1

接下來++x是對x先加值後使用,則此時x=0,同理++y也是先加值後使用,此時y=0,++z也是一樣的,所以z=0,那麼再進行邏輯運算,由於x和y都是0了,所以做與運算結果還是0,而z也是0,因此再與z做或運算還是0

所以++x&&++y||++z為0

4樓:

首先是給x,y,z均賦值為-1

接下來++x是對x先加值後使用,則此時x=0

然後就是“與操作”(由於“與操作”的優先順序高於“或操作”,所以先進行:++x&&++y),這時候由於“&&”前面的值已經是0了,所以就跳過y的自增,y的值不變,仍是-1

接下來進行“或操作”,z自增變成z=0,然後與前面的邏輯結果0進行“或操作”,最終得到的結果是0,x=0,y=-1,z=0

至於“&&”操作符的快速計算方式:當“&&”前面的值是0的時候,就不進行“&&”後面的運算了,因為0與任何數的“與操作”結果都是0,所以就沒必要計算後面的了

同樣的,存在“||”的快速計算:當“||”前面的值是1的時候,就不進行“||”後面的運算了,因為1與任何數的“或操作”結果都是1,所以就沒必要計算後面的了

設是曲面x y z 1 z 0 的上側,計算曲面積分

作輔助平面 z 0,x y 1,取下側i x dydz y dxdz 3 z 1 2dxdyi x dydz y dxdz 3 z 1 2dxdy 3 2 dxdy 3 2 x y 1 d 3 2 2 1 3 根據高斯公式 i i x dydz y dxdz 3 z 1 2dxdy 3 v x y ...

現版本如何流暢執行戰地1,這個配置能玩戰地1嗎?

您好。如果您無法進行正常的流暢遊戲的話是推薦您更新一下您的配件的,戰地1對於顯示卡的需求是比較大的,如果玩家沒有一定的配置來進行遊戲的話是沒有辦法進行很好的遊戲體驗的,所以推薦您優化驅動並且安裝新配件的。希望我的對您有幫助。降低解析度 降低解析度顯示比例。戰地1配置 30 戰地1最低配置。系統 wi...

y 6,y 1,x y,x 1 為什麼y 1不執行如果是yy呢

括號的運算過程是 1 對y賦值6,y的值為6 2 y 1,這裡執行了,y原始值加1,只是沒有意義而已 3 y賦值x,x的值變為6,就是賦新值 4 x 1,這裡也執行了,但沒有意義 這時整個括號的運算結果為 x 6,y 6 如果y 1是y 先運算,後自加1,這時整個括號的運算結果 x 7,y 7 如果...