1.bool,布尔类型
- 非0即真,0即假
- true为真,本质是1;false为假,本质是0
- 任何基本类型都可以隐式转换为bool类型
- boolalpha -> 相当于一个开关,表示开,打印true和false
- noboolalpha -> 表示关,关闭后打印 0||1
bool a = false;
cout << a << " " << boolalpha << a << endl;
a = 20;
cout << noboolalpha << a << endl;
a = *("abc"+3); // 0->a 1->b 2->c 3->\0
cout << boolalpha << a << endl;
// 顺便复习一下:
/*
这三种意思相同
a = *("abc"+3);
a = "abc"[3];
a = 3["abc"];*/
*/
2.inline,内联函数
内联 inline: 和#define很像
用已被编译好的二进制代码,替换对函数的调用,避免调用开销(栈区到代码区的调用)
使用inline关键字期望该函数被优化内联,不过是否内联由编译器决定
inline会使占用内存变大
复杂的函数和递归不可以用内联,递归是调用自己,会占用非常大、非常大、非常大的内存空间。
inline int Max(int a,int b){
return a>b?a:b;
}
int main()
{
Max(10,20);
return 0;
}