[关闭]
@1405010312 2017-07-16T11:18:39.000000Z 字数 3786 阅读 589

第二章 开始学习C++

C++PrimerPlus(第6版)中文版


2.1 进入C++

    C++对大小写敏感
    程序清单2.1 myfirst.cpp

  1. //myfirst.cpp -- displays a message
  2. #include <iostream>
  3. int main(){
  4. using namespace std;
  5. cout << "Come up and C++ me some time.";
  6. cout << endl;
  7. cout << "You won't regret it!" << endl;
  8. return 0;
  9. }

程序调整
1. 要在自己的系统上运行本书示例,可能需要对其进行修改.有些窗口环境在独立的窗口中运行程序,并在程序运行完毕后自动关闭该窗口.正如第一章讨论的,要让窗口一直打开,直到你按任何键,可在return 语句前添加如下语句:cin.get();对于有些程序,要让窗口一直打开,直到你按任何键,必须添加两条这样的语句.
2. 如果你使用的版本过旧,它可能不支持C++98新增的特性.
3. 有些程序要求编译器对C++11标准提供一定的支持.对于这样的程序,将明确的指出这一点,并在可能的情况下提供非C++11代码.

C语言输入和输出
1. 一般用cout,cin函数来进行输入输出,但一般这个函数会比printf,scanf函数要慢一下.

你使用函数来创建C++程序.通常,先将程序组织为主要任务,然后设计独立的函数来处理这些任务,程序清单2.1中的示例非常简单,只包含一个名为main()函数.myfirst.cpp示例包含下述元素.
- 注释,由前缀//标识(或者也可以用/**/)
- 预处理器编译指令#include.
- 函数头: int main()
- 编译指令: using namespace
- 函数体: 用{和}括起
- 使用C++的cout工具显示消息的语句
- 结束main()函数的return语句

下面详细介绍这些元素.先来看看main()函数,因为了解了main()的作用后,main()前面的一些特性将更易于理解.

2.1.1 main()函数

去掉修饰后,程序清单2.1中的示例程序基本结构如下:

  1. int main(){
  2. statements
  3. return 0;
  4. }

这几行表明有一个名为main()函数,并描述了该函数的行为.这几行代码构成了函数定义.该定义由两部分组成:第一行int main()叫函数头,花括号({和})中包含的部分叫函数体.函数体是指出函数应做什么的计算机指令.在C++中,每条完整的指令都称为语句.所有的语句都以分号结束,因此在输入示例代码时,不要省略分号.main()中最后的一条语句叫做返回语句,它结束该函数.

语句和分号
语句是要执行的操作.为理解源代码,编译器需要知道一条语句何时结束,另一条语句何时开始.有些语句使用语句分隔符.例如FORTRAN通过行尾将语句分隔开来,Pascal使用分号分隔语句.在Pascal中,有些情况可以省略分号,例如END前的语句后面,这种情况下,实际上并没有将两条语句分开.不过C++和c一样,也使用终止符,而不是分隔符.终止符是一个分号,它是语句结束的标识,是语句的组成部分,而不是语句之间的标记.

  1. 作为接口的函数头

    • 就目前而言,需要记住的主要一点是,C++句法要求main()函数的定义以函数头int main()开始.
    • 通常,C++函数可被其他函数激活或调用,函数头描述了函数与调用它的函数之间的接口.位于函数名前的部分叫做函数返回类型,它描述的是从函数返回给调用它的函数的信息.函数名后括号中的部分叫做参数列表或形参列表;它描述的是从调用函数传递给被调用的函数的信息.
  2. 为什么main()不能使用其他名称

    • 通常C++程序必须包含一个名为main()的函数.在运行C++程序时,通常从main()函数开始执行.因此,如果没有main(),程序将不完整,编译器将指出未定义main函数.

2.1.2 C++注释

2.1.3 C++预处理器和iostream文件

如果需要使用C++输入或输出工具则必须提供这样两行代码:

  1. #include <iostream>
  2. using namespace std;

2.1.4 头文件名

头文件命名约定
头文件类型 约定 示例 说明
C++旧式风格 以.h结尾 iostream.h C++程序可以使用
C旧式风格 以.h结尾 math.h C,C++程序可以使用
c++新式风格 没有扩展名 iostream C++程序可以使用,使用namespace std
转换后的c 加上前缀c,没有扩展名 cmath C++程序可以使用,可以使用的不是C的特性,如namespace std

2.1.5 名称空间

2.1.6 使用cout进行C++输出

2.1.7 C++源代码的格式化


  1. 源代码中的标记和空白
    一行代码中不可分隔的元素叫做标记.通常,必须用空格,制表符或者回车将两个标记分开,空格,制表符和回车统称为空白.
  2. C++源代码风格
    虽然C++在格式方面赋予了很大自由,但如果遵循合理的风格,程序将更便于阅读.一般规则如下.

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

2.2 C++语句

清单2.2 carrots.cpp

  1. //carrots.cpp --- food processing program
  2. //uses and displays a variable
  3. #include <iostream>
  4. using namespace std;
  5. int main(){
  6. int carrots;
  7. carrots = 25;
  8. cout << "I have ";
  9. cout << carrots;
  10. cout << " carrots.";
  11. cout << endl;
  12. carrots = carrots - 1;
  13. cout << "Crunch, crunch. Now I have " << carrots << " carrots." << endl;
  14. return 0;
  15. }

2.2.1 声明语句和变量

2.2.2 赋值语句

2.2.3 cout的新花样

2.3 其他C++语句

程序清单2.3 getinfo.cpp

  1. //getinfo.cpp -- input and output
  2. #include <iostream>
  3. int main(){
  4. using namespace std;
  5. int carrots;
  6. cout << "How many carrots do you have? " << endl;
  7. cin >> carrots;
  8. cout << "Here are two more.";
  9. carrots = carrots + 2;
  10. cout << "How you have " << carrots << " carrots." << endl;
  11. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注