C++Primer学习记录(2)

140 阅读4分钟

第二章 开始学习C++

2.1 进入C++

1)main()函数

int main()
{
    statements;
    return 0;
}

语句和分号

语句是一条完整的计算机指令。为理解源代码,编译器需要知道一条语句何时结束,另一条语句何时开始。有些语言使用语句分隔符。而C++与C语言一样,使用终止符(terminator)。终止符是一个分号,是语句结束的标识,属于语句的组成部分。因此在C++中,不能省略分号

  • 为什么main()不能使用其他名称?

通常,C++程序必须包含一个名为main()的函数。运行程序时,通常从main()开始执行。且main要注意大小写。

2)注释

C++注释以(//)打头,到行尾结束。

也支持C风格注释,C注释包括在//之间,可跨越多行。

3)C++预处理器和iostream文件

以#开头的预处理器:在源代码被编译之前,替换或添加文本。

老式C语言头文件以.h结尾,而C++头文件则没有扩展名;有些C头文件被转换为C++头文件,这边文件被去掉扩展名.h,并在文件名前面加上前缀c

  • 为什么要将iostream文件的内容添加到程序中呢?

这主要涉及到程序与外部世界之间的通信。iostream中的io指的是输入和输出。#include编译指令导致iostream文件的内容随源代码文件的内容一起被发送给编译器。

  • 名称空间

使用名称空间来区分同名函数

using namespace std; 使用using编译指令,引入std空间中的代码,随后可直接使用cin与cout

但在多数情况下,我们仅需要引入所需的名称, 可以使用 using std::cout,随后可直接使用cout

最麻烦的做法是在名称前加上空间名,即std:cout

  • 控制符endl

表示重起一行;在输出流中插入endl将导致屏幕光标转移到下一行的开头,与“\n”等意。

4)C++源代码风格

  • 每行一条语句
  • 每个函数都有一个开始{和一个结束},这两个花括号各占一行
  • 函数中的语句都相对花括号进行缩紧
  • 与函数名称相关的圆括号周围没有空白

5)C++语句

  • 声明语句

创建变量

int carrots; 
/*
1. 指出数据类型
2. 使用名称carrots标识存储在该内存单元中的值
*/

为什么变量必须声明?

有些语言在使用新名称时创建新的变量,而不显示的进行声明。这看上去对用户比较友好。但若错误的拼写了变量名,将在不知情的情况下创建一个新的变量。这种错误比较难发现。然而,在C++中“使用变量前必须声明它”,那么编译器将很容易捕获这种错误。

程序中的声明语句叫做定义声明,这意味着它将导致编译器为变量分配内存空间。 另外,还有引用声明,这些声明命令计算机使用在其他地方定义的变量。因此,声明不一定是定义!!!

提示:C++的通常做法是在, 首次使用变量前声明它

  • 赋值语句

给变量提供一个值

carrots = 25

赋值操作将从右向左进行。

6)cout打印

在C语言中,要打印字符串"25"和整数25:

printf("Printing a string:%s\n","25");
printf("Printing an integer:%d\n",25);
//必须使用特殊代码%s和%d来指出要打印字符串还是整数

C++中,使用cout<< 将根据其后的数据类型相应的调整行为,主要是因为重载了 <<

控制符dec、hex和oct,分别用于指示cout以十进制、十六进制和八进制格式显示整数

int waist = 42;
std::cout << hex;
std::cout << waist << endl;

7)cin输入

将通过键盘输入的一系列字符转换为接受信息的变量所能够接受的形式

2.2 函数

C++程序应当为程序中使用的每个函数提供原型;函数原型之于函数就像变量声明之于变量--指出涉及的类型

函数定义中包含了函数的详细实现代码

C++可以使用大量的库函数,使用库函数前,应该包含提供该函数原型的头文件。

命名约定

函数命名风格选择取决于开发团体、使用的技术或库以及程序员的个人品味和喜好。凡是C++语言所涉及的所有合法的风格都是正确的。

2.3 总结

有多种类型的C++语句,包括:

  • 声明语句— 定义函数中使用的变量名称和类型
  • 赋值语句—使用赋值操作符(=)给变量赋值
  • 消息语句—将消息发送给对象,激发某种行为
  • 函数调用—执行函数。被调用的函数执行完毕后,程序返回到函数调用后面的语句
  • 函数原型—声明函数的返回类型、函数接受的参数数量和类型
  • 返回语句—将一个值从被调用的函数那里返回到调用函数中。