做獨立網(wǎng)站給你百度競價推廣方案的制定
目錄
&& --- 邏輯與操作符
|| --- 邏輯或操作符?
&& --- 邏輯與操作符
邏輯與操作符有并且的意思,一般用于判斷語句中
邏輯與操作符運行規(guī)則是都要為真,才會繼續(xù)執(zhí)行或計算
360筆試題:
有關(guān)前置++(--),后置++(--)的知識請見:單目操作符-CSDN博客
#include<stdio.h>
int main()
{int i = 0, a = 0, b = 2, c = 3, d = 4;i = a++ && ++b && d++;printf("a = %d\nb = %d\nc = %d\nd = %d\n", a, b, c, d);return 0;
}
代碼分析:a++ && ++b && d++
a++:a初始值為0,后置++,先計算后++,0為假,那么&& ++b && d++就不會計算
所以結(jié)果為:a = 1,b = 2,c = 3,d = 4
代碼驗證:
得出結(jié)論:邏輯與操作符左邊為假,右邊就不會計算?
將a的初始值更改為1,會有怎樣的結(jié)果?
#include<stdio.h>
int main()
{int i = 0, a = 1, b = 2, c = 3, d = 4;i = a++ && ++b && d++;printf("a = %d\nb = %d\nc = %d\nd = %d\n", a, b, c, d);return 0;
}
代碼分析:a++ && ++b && d++
a++:a初始值為1,后置++,1為真(一切非0都為真),所以要計算 && ++b
a++ && ++b:a后置++后為2,b初始值為2,前置++后為3,a++ && ++b整體的結(jié)果同樣為真,在C語言中,真的固定值為1,所以&& d++也要計算
a++ && ++b && d++:d初始值為4,后置++,執(zhí)行完此表達式后為5
所以結(jié)果為:a = 2,b = 3,c = 3,d = 5
代碼驗證:
|| --- 邏輯或操作符?
邏輯或操作符有或者的意思,只要有一個表達式為真即可
相關(guān)代碼題:
#include<stdio.h>
int main()
{int i = 0, a = 0, b = 2, c = 3, d = 4;i = a++ || ++b || d++;printf("a = %d\nb = %d\nc = %d\nd = %d\n", a, b, c, d);return 0;
}
代碼分析:a++ ||?++b ||?d++
a++:a初始值為0,后置++,邏輯與只要有一個為真即可,所以要判斷 || ++b是否為真
a++ || ++b:a后置++后為1,b初始值為2,前置++后為3,|| ++b為真,所以 || d++就不會計算
所以結(jié)果為:a = 1,b = 3,c = 3,d = 4
代碼驗證:?
得出結(jié)論:邏輯或操作符左邊為真,右邊不再計算?
將a的初始值更改為1,會有怎樣的結(jié)果?
#include<stdio.h>
int main()
{int i = 0, a = 1, b = 2, c = 3, d = 4;i = a++ || ++b || d++;printf("a = %d\nb = %d\nc = %d\nd = %d\n", a, b, c, d);return 0;
}
代碼分析:
a++:a初始值為1,后置++,a為真,那么|| ++b || d++都不會計算,表達式結(jié)束后a為2
所以結(jié)果為:a = 2,b = 2,c = 3,d = 4
代碼驗證: