2 回答

TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊
while(!(--a))的意思為先計(jì)算a=a-1,再判斷a的值是否為0,為0則繼續(xù)執(zhí)行循環(huán)語(yǔ)句,實(shí)例解析如下:
①如圖,首先先執(zhí)行a=a-2,得a=1并輸出
②再執(zhí)行while(!(--a)),此時(shí)先執(zhí)行a=a-1,得a=0,所以!a不為0,所以此時(shí)while的邏輯判斷為真,會(huì)繼續(xù)執(zhí)行printf(“%d”,a-=2);所以會(huì)輸出-2,然后繼續(xù)判斷!a就為0了,此時(shí)判斷邏輯假,不會(huì)繼續(xù)執(zhí)行循環(huán)了。
再如下圖:
輸出a=1后,得出a=0,邏輯為假,此時(shí)直接退出循環(huán),所以只輸出1.

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊
C/C++沒(méi)有所謂的“邏輯量”,而是用普通數(shù)值表示邏輯值。
其中0表示邏輯假,非0值表示邏輯真。
例題第一次循環(huán)結(jié)束時(shí),a值為1,此時(shí)循環(huán)條件!(--a)=!0為真,因此會(huì)進(jìn)入第二次循環(huán)從而輸出-2。
- 2 回答
- 0 關(guān)注
- 444 瀏覽
添加回答
舉報(bào)