C++ Primer Plus(6th) Chap2 开始学习C++ 摘录

2.1 进入C++

源代码中包含一些供读者阅读的注释,这些注释都以//打头,编译器将忽略它们。

C++对于大小写敏感。

预处理器编译指令#include

函数头。

 int main();

编译指令using namespace。

函数体,用{} 括起。

结束 main() 函数用return statement语句。

2.1.1 main()函数

函数头对函数与程序其他部分之间的接口进行了总结;

函数体指出函数应做什么的计算机指令。

在C++中,每条完整的指令都称为语句。所有的语句都以结束。

语句是要执行的操作。为理解源代码编译器需要知道一条语句何时结束,另一条语句何时开始。

C++句法要求main()函数的定义以函数头int main()开始。

位于函数名前面的部分叫做函数返回类型,它描述的是函数出口信息(从函数返回给调用它的函数的信息)。函数名后括号中的部分叫做形参列表(argument list)或者参数列表(parameter list); 它描述的是函数入口信息(从调用函数传递给被调用函数的信息)。

通常,main()被启动代码调用, 而启动代码是由编译器添加到程序中的,是程序和操作系统之间的桥梁。

classic C写法中,main()不写返回类型。

如果编译器到达main()函数末尾时没有遇见返回语句,则认为main()函数以return 0; 结尾。

2.1.2 C++注释

C++注释以//打头,到行尾结束。注释可以位于单独的一行上,也可以和代码位于同一行。

应使用注释来说明程序。程序越复杂,注释的价值越大。注释不仅有助于他人理解这些代码,也有助于程序员自己理解代码,特别是隔了一段时间没有接触该程序的情况下。

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

#include <iostream>

, 该编译指令导致预处理器将iostream文件的内容添加到程序中。这是一种典型的预处理器操作:在源代码被编译之前,替换或添加文本

2.1.4 头文件名

像iostream这样的文件叫做包含文件(include file) -- 由于它们被包含在其他文件中;也叫头文件(header file) -- 由于它们被包含在文件起始处。

C++头文件命名规则,新版风格是不加.h结尾。但是要加上using namespace std。使得iostream中的定义对程序可用。

2.1.5 名称空间

名称空间支持是一项C++特性,旨在让您编写大型程序以及将多个厂商现有的代码组合起来的程序时更容易,它还有助于组织程序。

using namespace std;
using std::cout;

2.16 使用cout进行C++输出

插入运算符<<表示该语句将把这个字符串发送给cout;该符号指出了信息流动的路径。cout是一个预定义的对象,知道如何显示字符串、数字和单个字等。

endl 表示重启一行。在输出流中插入endl将导致屏幕光标移到下一行。

诸如endl等对于cout来说有特殊含义符号被称为控制符

cout输出字符串时,通常用\n.,其余用endl。一个差别时,endl确保程序运行前刷新输出(将其立即显示在屏幕上);而使用\n不能提供这样的保证。

2.1.7 C++源代码的格式化

在C++中,回车的作用就和空格与制表符相同。

不能把回车、制表符或回车放在元素中间,也不能把回车放在字符串中间。

一行代码中不可分割的元素叫做标记(token)。

必须用空格、制表符或回车将两个标记分开。

C++源代码风格:

每条语句占一行;

每个函数都有一个开始花括号和一个结束花括号,这两个花括号各占一行;

函数中的语句都有相对于花括号的缩进;

与函数名称相关的圆括号周围没有空白;

2.2 C++语句

C++程序是一组函数,而每个函数又是一组语句。

声明语句变量,赋值语句给该变量提供一个值。

声明:

type-name variable-name;

2.2.1 声明语句和变量

要将信息项存储在计算机中,必须指出信息的储存位置和所需内存空间。一个简便方法是使用声明语句提供位置标签并指出存储类型。

声明语句提供需要的内存以及该内存单元的名称,编译器负责分配和标记内存细节。

声明通常指出了要存储的数据类型和程序对存储在这里的数据使用的名称。

引用声明命令计算机使用在其他地方定义的变量。

C++通常做法是在首次使用变量前声明它。

2.2.2 赋值语句

赋值语句将值赋予给存储单元。符号=叫做赋值运算符。C++可以连续使用赋值运算符。

赋值从右向左进行。

2.2.3 cout的新花样

cout相比printf更灵活。可以重新定义<<运算符,使cout能够识别和显示所开发的新数据类型。

输出时,<< 运算符将字符串插入输出流中;输入时,cin使用>>运算符从输入流中抽取字符。通常需要在>>右侧提供一个变量,以接收抽取的信息。

当一行代码很长时,可以在标记间插入空格或者回车。

2.3 其他C++语句

2.3.1 使用cin

C++提供了两种发送消息的方式。使用类方法(cin.get(), cout.put());二是运算符重载<<或>>。

2.4 函数

return-type function-name(arguments ist)

{

        function body;

        return value;

}

C++函数分为两种:有返回值和没有返回值的。

2.4.1 使用有返函数

函数名(),即调用函数。

参数是发送给函数的信息,返回值是从函数中发送回去的值。

C++程序应当为程序中使用的每个函数提供原型

函数原型至于函数就像变量声明至于变量--指出涉及的类型。

原型结尾的分号表明它是一条语句,这使得它是原型,而不是函数头。

原型只描述函数接口。即它描述的是发送给函数的信息和返回的信息。而定义中包含了函数的代码。

C++将库函数的原型和定义分开了。库文件包含了函数的编译代码,而头文件则包含了原型

C++还允许在创建变量时对它进行赋值,也就是初始化。

type-name variable-name = value;

2.4.2 函数变体

有些函数需要多项信息。参数间用逗号分开。

若参数列表为关键字void,则该函数不接受任何参数。如果连void都省略,则C++将其解释为一个不接受任何参数的隐式声明。

在C++中,函数调用中必须包括括号(),即使没有参数。

若函数原型中使用关键字void来指定返回类型,以指出函数没有返回值。由于它不返回值,因此不能将该函数调用放在赋值语句或其他表达式中,而应使用一条纯粹的函数调用语句。

2.4.3 用户定义的函数

对于库函数,在使用之前必须提供其原型,通常放在main()定义之前。

C++不允许将函数定义嵌套在另一个函数定义中。每个函数定义都是独立的,所有的函数的创建都是平等的。

对于有返回值的函数,应使用关键字return来提供返回值。

可以将操作系统看作main()函数的调用程序,因此main()的返回值并不时返回程序的其他部分,而是返回给操作系统。 

2.4.4 用户定义的有返回值的函数

return后面并非一定得跟一个简单的数字,可以通过使用较为复杂的表达式,避免创建一个新变量,将值赋给该变量,然后将它返回。

函数原型描述了函数接口,即函数如何与程序其他部分交叉。参数列表指出了何种信息将被传递给函数,函数(返回)类型指出了返回值的类型。

2.4.5 在多函数程序中使用using编译指令

当前通行的理念是,只让需要访问名称空间std的函数访问它时更好的选择。

让程序能够访问名称空间std方法有很多种,下面是其中四种

将using namespace std;放在函数定义之前,让文件中的所有函数都能够使用名称空间std中所有的元素。

将using namespace std;放在特定的函数定义中,让该函数能够使用名称空间std中的所有元素。

在特定的函数中使用类似的using std::cout;这样的编译指令,而不是using namespace std;让该函数能够使用特定的元素,如cout。

完全不使用编译指令using,而在需要使用名称空间std中的元素时,使用前缀是std::。

2.5 总结

C++程序由一个或多个被称为函数的模块组成。

程序从main()函数开始执行。

函数是由函数头和函数体组成。

函数头指出函数的返回值(如果有的话)的类型和函数期望通过参数列表传递给它的信息的类型。

函数体由一系列位于花括号{}中的C++语句组成。

C++语句由多种,包括下面6种:

声明语句:定义函数中使用的变量的名称和类型。

赋值语句:使用赋值运算符(=)给变量赋值。

消息语句:将消息发给对象,激发某种行动。(cout, cin)

函数调用:执行函数。被调用的函数执行完毕后,程序返回到函数调用语句的后面的语句。

返回语句:将一个值从被调用的函数哪里返回到调用函数中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值