《C++ Primer Plus 第六版 中文版》的研读与学习(四)

Leona ·
更新时间:2024-11-14
· 979 次阅读

往期传送门:
《C++ Primer Plus 第六版 中文版》的研读与学习(三)

《C++ Primer Plus 第六版 中文版》的研读与学习(二)

《C++ Primer Plus 第六版 中文版》的研读与学习(一)
今天,我们继续来学习《C++ Primer Plus 第六版 中文版》,上次我们讲到C++的头文件和命名空间,今天我们下来看看C++中显示消息(输出)的语句。
先贴上样例代码:

#include // a PREPROCESSOR directive 一个预处理器编译指令 int main() // function header 函数头 { // start of function body 开始函数体 using namespace std; // make definitions visible 编译指令 cout << "Come up and C++ me some time."; // message 输出一条信息 cout << endl; // start a new line 换行 cout << "You won't regret it" << endl; // more output 更多输出 return 0; // terminate main() 终止主函数 } // end of function body 结束函数体

在C++中,我们使用cout语句进行输出操作,双引号内为输出内容(字符串),符号<<指出了信息流动的方向。其中,cout是一个预定义的对象,只需要知道对象的接口,不需知道其具体内容即可使用。
例如:

#include int main() { using namespace std; string str = "Hello world!"; //C++中字符串的定义使用string cout << str; //输出str字符串 cout << endl; return 0; }

语句cout << str;并不知道str的具体内容,只知道其接口,仍然可以成功完成输出操作。
在C++中,输入输出的概念均为“流”,这一点不同于C语言。也就是说,我们将要输出的字符串插入到输出流当中实现了输出。
在本文贴出的两段代码中,都有这样的一条语句:

cout << endl;

在C++中,endl是一个重要的控制符(manipulator),表示重起一行。同样在头文件iostream中定义,位于名称空间std中。
当然,在C++中也兼容传统的C换行符\n,例如:

#include int main() { using namespace std; cout << "Come up and C++ me some time."; cout << "\n"; cout << "You won't regret it\n"; return 0; }

也可以达到同样的效果。
接下来,我们谈谈关于C++代码的格式化。有些语言(例如Python)是面向行的,每一行仅有一条语句、一条语句仅能占据一行。但是在C++中,由于有分号作为分隔符,同一条语句可以占据若干行、若干条语句也可以放在同一行(即语句中空格、制表位、回车等效)。当然,原始字符串中,也可以包含回车(C++11新增)。
此时,就需要引入C++中的两个重要概念:标记(token)和空白(white space)。标记是一行代码中不可分割的部分,必须用空格、制表位、回车将两个标记分隔开,空格、制表位、回车统称为空白。
因此,如下的代码是合法的:

int main() return 0;

如下的代码是非法的:

intmain() return0;

为了代码阅读方便,我们通常采用以下的风格书写C++代码:

每条语句占一行、一行一般只有一条语句 每个函数都有一对花括号在函数体两端,各占一行、缩进相同 函数中的语句相对于花括号缩进一个制表位 函数名称相关的圆括号周围没有空白

今天的分享就到此结束,下一期我们将重点讲解C++语句的内容。

弦之弈 原创文章 13获赞 13访问量 401 关注 私信 展开阅读全文
作者:弦之弈



c+ c++ primer plus 学习 C++

需要 登录 后方可回复, 如果你还没有账号请 注册新账号