《C++ Primer Plus》第一、二章总结

一、简单输出程序

#include<iostream>

int main()
{
    using namespace std;
    cout<<"Come up and C++ me some time. ";
    cout<<endl;
    cout<<"You won't reget it! "<<endl;
    return 0;
}

(1)main()函数

其中main()函数基本结构为

int main()
{
    statements;
    return 0;
}

这几行实现了函数的定义。第一行int main()为函数头,花括号内的部分称为函数体。函数头对函数和程序的其他部分之间的接口进行了总结,函数体指出函数应该做什么计算机指令,每条完整的指令称为语句,所有语句以分号结束。返回语句结束了该函数。

函数头:函数头描述了函数和调用它的函数之间的接口,位于函数名前面的是函数返回类型,描述从函数返回给调用它的函数的信息。函数名后的括号部分为形参列表或参数列表,描述的是从调用函数传递给被调用函数的信息。通常,main函数被启动代码调用,而启动代码是由编译器添加到程序中的,是程序和操作系统之间的桥梁,则该函数头描述的是main()和操作系统之间的接口如果编译器到main()末尾都没有遇见返回语句,则默认以return 0结尾,当然只适用于main()

(2)预处理器和iostream文件

#include<iostream>
using namespace std;

C++使用了预处理器,即在程序进行主编译之前对文件进行处理,也就是处理以#开头的编译指令。该预处理器会在编译程序时自动执行,无需特殊操作来调用。

本程序执行了一个典型的预处理操作,在源代码被编译之前,替换或添加文本

iostream文件是输入输出流,当需要执行输入输出操作时,需要引用该文件。而该预编译指令导致iostream文件的内容随源代码文件的内容一起发送给编译器,而该内容将取代对应的预编译指令。但需要注意的是,其源文件并没有改变。而是将源文件与iostream文件组合成一个复合文件,编译的下一阶段也使用该文件。

(3)头文件名

像iostream这样的文件称为包含文件,由于它们被包含在其他文件之中;也叫头文件,因为被包含在文件的起始处。C和C++的旧式头文件使用.h扩展名,新式头文件不使用扩展名,来自于C的头文件不使用扩展名,且在前面加上c。

(4)名称空间

引用iostream的时候需要使用名称空间编译指令使iostream中的定义对程序可用,

using namespace std;

这叫做using编译指令。名称空间旨在使我们在使用其他多个厂商的代码时组合起来更加方便。比如已经封装好的两个产品,都有一个wanda()函数,使用这个函数时,编译器不知道使用哪个版本。名称空间可以使厂商将其产品封装在一个叫做名称空间的单元中,这样可以使用名称空间的名称来指明使用哪个厂商的产品。

按照这种方式,类、函数、变量都放在C++名称空间std(Standard Library)中,仅当头文件没有扩展名.h时,情况才是这样的

这样可能会在大型程序中引发问题。所以可以使用

using std::cout;

using std::endl;

来替代

using namespace std;

(5)cout输出

cout<<"Come up and C++ me some time. ";

双引号中括起的字符称为字符串,因为它是由若干字符组合而成的。<<符号表示该语句把这个字符串发送给cout,该符号指出了信息流动的路径。cout是一个预定义的对象,知道如何显示字符串,单个字符或数字等。

从概念上,输出是一个流,也就是从程序中流出的一系列字符。cout对象表示这种流,其属性在iostream文件中定义。cout的对象属性包括一个插入运算符(<<),可以将右侧的信息插入到流中。因此,与其说是程序显示了一条信息,不如说是程序将一个字符串插入到了输出流中。

endl表示重起一行。在输出流中插入endl将导致光标移到下一行开头。诸如endl等对cout来说有特殊含义的特殊符号称为控制符

还有一种换行符\n,显示字符串时,在字符串中包含换行符,而不是在末尾加上endl,可以减少输入量。一个差别是,endl确保程序继续运行前刷新输出,而使用“\n”不能提供这样的保证,这意味着有些系统中可能需要在输入信息之后才会有提示。

(6)源码格式化

一行代码中不可分割的元素叫做标记(token),通常,需要用空格、制表符或回车来将两个标记分开,空格、制表符或回车统称为空白。有些字符(比如逗号或括号)是不需要用空白分开的标记。

大多程序员的风格:

1.每条语句占一行;

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

3.函数中的语句相对于花括号进行缩进;

4.与函数相关的圆括号周围没有空白。

二、C++语句

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

(1)声明语句和变量

要将信息项存储在计算机中,必须指出信息的存储位置所需内存空间。在C++中,完成这种任务的一种简便方法,是使用声明语句指出存储类型并提供位置标签。编译器负责分配和标记内存的细节。在C++中,所有变量都必须声明。

int a;

程序中的声明语句为定义声明语句,简称为定义。这意味着它将导致编译器为变量分配内存空间,在较为复杂的情况下,还可能有引用声明,命令计算机使用其他地方声明的变量。通常,声明不一定是定义

(2)赋值语句

赋值语句将值赋给存储单元。符号=叫做赋值运算符,C++可以连续使用赋值运算符,且赋值是从右向左进行的。

三、其他语句

(1)使用cin

iostream文件将cin定义为流入程序的字符流,cout为流出程序的字符流。输出时,程序使用<<符号将字符串插入到输出流中;输入时,程序使用>>符号从输入流中抽取字符。通常,需要在右侧提供一个变量,以接受抽取的信息。符号<<和>>代表信息流的方向

(2)类简介

类是用户定义的一种数据结构。类描述了一种数据类型的全部属性(包括可使用它执行的操作),对象是根据这些描述创建的实体。类可以来自类库,istream类和ostream类都定义在iostream文件中,没有被内置在编译器。iostream系列类和相关的fstream(文件I/O)系列类是早期所有的实现都自带的唯一两组类定义。

类描述指定了可对类对象执行的所有操作,要对特定对象执行这些允许的操作,需要对该对象发送一条消息。C++提供了两种发送消息的方法:一是使用类方法(本质上是函数调用);二是重新定义运算符。cin和cout采用的是后者。

四、函数

(1)有返回值的函数

有返回值的函数生成一个值,可以在其他表达式中使用。

x=sqrt(6.25);

表达式sqrt(6.25)将调用sqrt()函数,表达式sqrt(6.25)被称为函数调用,被调用的函数称为被调用函数,包含函数调用的函数称为调用函数。圆括号中的值是发送给函数的信息,称为传递给函数。以这种方式传递给函数的值,称为参数,发送回来的值称为函数的返回值。简而言之,参数是发送给函数的信息,返回值是从函数中发送回来的值。

在使用函数之前,C++编译器必须知道函数的参数类型和返回值类型,否则,编译器不知道如何解释返回值。C++提供这种信息的方式是使用函数原型语句。函数原型之于函数就像变量声明之于变量——指出涉及的类型。

原型结尾的分号表明它是一条语句,使得它是一个原型而不是一个函数头。如果省略分号,编译器将把这行代码解释为一个函数头,并要求接着提供定义该函数的函数体。

在程序中使用sqrt()时,也必须提供原型。可以使用两种方法实现:

(1)在源代码文件中输入函数原型;

(2)包含其所在的头文件,其中定义了原型。

不要混淆函数原型和函数定义。原型只描述函数接口,定义中包含了函数的代码。C和C++将这两项特性分开了,库文件包含编译代码,头文件包含函数原型。需要在首次使用函数之前提供函数原型。

C++库函数存储在库文件中。编译器编译程序时,它必须在库文件中搜索使用的函数。至于自动搜索哪些库文件,将因编译器而异。

C++允许在创建变量时,对它进行赋值,这个过程叫做初始化

(2)函数变体

有些函数需要多项信息,这些函数使用多个参数,参数间用逗号隔开。

另一些函数不接受任何参数,可以使用void表明,在C++中也可以使用空括号隐式声明。C++在函数调用中必须包括括号,即使没有参数。

还有一些函数没有返回值。可以在函数原型中使用void来表明。

(3)用户自己定义的函数

1、函数格式

与main()格式相同。首先有一个函数头,其次是花括号中的函数体。

type functionname(argumentlist)
{
    statements;
)

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

2、函数头

可以计算机操作系统当作一个调用程序,main()函数的返回值并不是返回给程序的其他部分,而是返回给操作系统。很多操作系统都可以使用程序的返回值。通常约定为,退出值为0意味着程序运行成功;为非0意味着存在问题。

关键字:关键字是计算机语言中的词汇。这些关键字是C++专用的,不能用作函数名和变量名。

五、总结

        C++程序由一个个被称为函数的模块组成。程序从必不可少的main()开始执行。函数由函数头函数体组成,函数头指出函数的返回值类型和参数类型,函数体由花括号中的一系列C++语句组成。

        C++中有6种语句,包括声明语句、赋值语句、消息语句、函数调用、函数原型、返回语句

        是用户定义的数据类型规范,描述了如何表示信息以及可以对数据执行的操作。对象是根据类规范创建的实体。

        C++在iostream中预定义了两个用于输入和输出的对象,为ostream类定义的插入运算符<<使数据插入输出流成为可能,为istream类定义的抽取运算符>>能够从输入流中抽取信息。

  • 30
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值