![]() |
|
教學公告
課件疑問
[作者:
肖菁 發布時間:2019-10-29 11:07:44 瀏覽次數:944次]
課件中有:
若x=4,y=5,則 i=++x==5||++y==6 ; i,x,y的取值分別為多少?
這個表達式C++會做短路處理,就是||前面部分如果是為真的話;那么 || 后面的無論是否為真, || 的結果都是為真,此時C和C++就不做后面那個東西了。
答案是 1 5 5
x開始是4,前置++后就是5
所以||的前半部分為1,導致 || 短路,后面代碼不做;即y并沒有自增了
故y的值從未變化過,還是5。
同樣,&&運算符如果前部分是0的話,后面部分也不做運算了。
i=x++==5&&y++==6; 的話 y部分也沒有做運算了。