题目一:下面的程序是执行if还是else
int a=2;
int b=5;
if(b&a>0) {
} else {
}
看到这个题目很自然的就想到了a&b是0x00000000,所以当然是执行else。但是我们这里没有考虑到运算符优先级,应该首先运算a>0,返回1,然后5&1=1,所以是执行if语句。
题目二: 如何判断一个二维的数组为空
if(matrix == NULL || matrix.length == 0 || matrix[0].length == 0)
这个题目依然含有一个表达式的计算特点的知识。
如果matrix是[],那么第三个式子会不会下标溢出,答案是不会。
因为|| 和&&都有短路求值的策略,逻辑与和逻辑或运算符都是先求左侧运算对象的值,当且仅当左侧的运算对象无法确定表达式的结果时才会计算右侧运算对象的值。
基本知识
C++中的char相当于更短的只有一个Byte的整型,
#include <iostream>
using namespace std;
int main() {
char ch = 'a';
int i = ch;
ch = ch + 1;
cout << ch <<endl <<i+1<<endl;
return 0;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)