【C++ Primer Plus 读书笔记】- chap 2 开始学习C++
- 虽然感觉自己已经过了看这本书的年龄,噫吁戱,但是... 🏃
- 现在开始不定时记录一下读书笔记 嘻嘻
- 由于初衷是写给自己看的,所以我记录的笔记不适用于所有人 😛
进入C++
程序创建
源代码-> 编译器-> 目标代码->链接程序->可执行代码
main
- 一些变体
- int main(void)
- void main()
- void明确指出不接受任何参数,如果括号为空,则解释为一个不接受任何参数的隐式声明。
- ANSI/ISO C++ 标准中:如果main()末尾没有return语句,则认为以return 0;结尾。但是只用于main()函数,其他函数不适用。
- DLL(动态链接库)模块,是其他Windows程序可以使用的代码,由于DDL模块不是独立的程序,因此不需要main()函数
预处理
- 会处理#开头的编译指令,还有其他的处理
- #include...将文件中的内容添加到程序中。
- 原始文件没有被修改,而是将源代码文件和iostream组合成一个符合文件,编译的下一阶段将使用该文件。
命名空间
- using namespace std; 始得std命名空间中所有的名称都可以用。
- 更好的方法是,只使用所需的名称。如:
using std::cout;
using std::endl;
- 其他方法
- 将using namespace std;放特定函数定义中,让该函数能使用该命名空间中的所有元素。
- 完全不使用这个语句,直接std::cout<<....
输入输出
- endl确保程序继续运行前刷新输出(将立即显示在屏幕上);
- "\n"不能提供这样的保证。有的系统中,有可能在你输入信息之后才显示。
源代码的格式化
- white space 空白:空格、制表符和回车的统称
return (0); //Valid!!white space used;
return(0); //VALID!!white space omitted;
C++语句
- 编译器负责分配和标记内存的细节。
- 定义声明,简称定义。它将导致编译器为变量分配内存空间,又是可能有引用声明。
- 声明不一定是定义。
- cout是ostream类对象,cin是istream类对象,在iostream里面定义了。
函数
- 区别函数原型和函数头,函数定义。
- 原型如
double sqrt(double);
- 原型只描述函数接口。
- C和C++将库函数的原型和定义分开了,库文件中包含了函数的编译代码,而头文件中则包含了原型。
- C++不允许函数嵌套定义。
- main()的返回之返回给操作系统。退出值为0意味着运行成功,否则存在问题。
- main不是关键字,由于它不是语言的组成部分。但是你不要乱用它。