1樓:正能量女戰神
&&邏輯與,||邏輯或,邏輯運算子,同優先順序。其意義如下:
a&&b——只有當a、b都為真時,該表示式值才為真;
a||b——只有當a、b都為假時,表示式值才為假。
特別注意(似乎是c進行的優化):
對於表示式a||b,當a為真時,將不對b進行判斷,因為整個表達時的值已經確定了,為真;
而對於表示式a&&b,當a為假時,將不對b進行判斷,因為整個表達時的值已經確定了,為假。
看如下語句:
x=y=z=-1;
++x||++y&&++z;
++x,值為0,x值也為0;接下來是||,還要對後面進行判斷,++y,值為0,y值也為0;接下來是&&,不再進行判斷,整個表示式的值為0,z的值仍為-1。
故執行完後,x=0,y=0,z=-1
x=y=z=-1;
++x&&++y||++z;
++x,值為0,x值也為0;接下來是&&,不對緊跟表示式進行判斷,y值仍為-1;接下來是||,要對後面進行判斷,++z,z的值為0,整個表示式的值為0。
故執行完後,x=0,y=-1,z=0
你的題同理可得:x=y=z=0;++x=1,x=1;接下來是||,不需要再判斷,所以y=0;接下來是&&,++z=1,z=1,整個表示式的值是1
2樓:匿名使用者
int x,y,z;x=y=z=0;
定義整形變數,x、y、z 把0(常量)賦給z, 把z賦值給y 把y 賦值給x 總之xyz都是0;
++x的值是x依次加1,++y ++z 同理++x||++y是1或者1還是1
1&&++z 就是 1與1 還是1。
++x||++y&&++z;」結果為1
3樓:樂vov樂
若有定義int x,y,z;x=y=z=0;
對於「 x|| y&& z; 這只是乙個表示式,不會對xyz重新賦值,所以xyz仍舊是 0
x|| y&& z; 無論從左到右還是從右到左,這個表示式結果永遠為假即為0
c語言求大神,簡單C語言求大神
include printf putchar include getch 試除法判斷素數 大於1的自然數num,若其不能被2 num 1 2 num的平方根 之間的任一自然數整除,則其為素數 num是素數返回1,否則返回0 int isprime int num int main void incl...
簡單的c語言程式設計,乙個簡單的c語言程式設計
你的程式有幾個錯誤,我幫你改正過來了,思路和你的思路是一樣的,我就不講解你錯在 了,你自己揣摩一下,自己揣摩出來的才是最好的!include main if max a 9 min a 0 for k 0 k 10 k if min a 0 for q 0 q 10 q printf d,a q r...
關於C語言的簡單問題,乙個關於C語言的簡單問題
p fopen e string.txt w 是以只寫方式開啟e盤下的string.txt檔案,如果檔案不存在則建立乙個新檔案,如果存在,則檔案內的資料會丟失 也就是會被你將要寫入的資料覆蓋 開啟檔案成功則返回的是檔案指標,如果不成功返回0 if null p fopen e string.txt ...