由一些基本原理和基本规定出发,经过简单的几步推导,我们往往可得出许多丰富的推论。
- EOF:End Of File,文件结束标志
main 的本质
- C语言不允许嵌套定义
- C语言允许嵌套调用
故而,一定有一个函数作为程序的起点,这个函数正是 main()
,程序的入口和起点。
char 类型变量的本质含义
一个二进制位,能表示两种状态;
C语言规定一个 char 类型变量,占一个字节(1 byte),8个二进制位(8 bits)。
8 个二进制位表示的是它能代表 255 种状态,而非具体的数值;
声明与定义
void swap(int&, int&);
声明是给编译器看的,告诉编译器根据参数及返回值类型建栈;
从 sizeof 关键字到宏
宏效率的来源,编译器确定其值;
int a = 1;
std::cout << sizeof(a = 3) << std::endl;
std::cout << a << std::endl;
并未如预料的那样,输出为4, 3,真正的输出为4,1,也就是未对a
的值做修改,也即并未执行a=3
的赋值语句,仅仅是返回了int
类型(左值的类型),供sizeof
使用,更多关于 sizeof
的讨论请见C/C++基础::sizeof() 与 sizeof(string) 。
数组的本质
arr[0] ⇒ ?
arr[1] ⇒ ?
数组(包括 vector、list)的本质是位置(索引、下标)与位置(索引、下标)上的值的映射关系。
位置自然是: 0, 1, …, n-1
其上的值: a[0], a[1], …, a[n-1]