深入理解C语言

来源:互联网 发布:c语言文件处理引言 编辑:程序博客网 时间:2024/06/06 10:57

由一些基本原理和基本规定出发,经过简单的几步推导,我们往往可得出许多丰富的推论。

  • 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]

0 0
原创粉丝点击