《C++ Primer Plus》学习笔记——第2章 开始学习C++

第2章 开始学习C++

2.1 进入C++

#include <iostream>
int main()
{
    using namespace std;
    cout << "Hello";
    cout << endl;
    cout << "World";
    return 0;
}
  • 这个代码可能一闪而逝,要让其停住可以在return前加cin.get(),有些需要添加两个这个。
  • C++可以使用C语言中的输入输出,只需要包含stdio.h头文件就行。但C++有自己的输入输出体系,并在C的基础上做了很多改进,应该使用C++特有的输入输出。

2.1.1 main()函数

  • main函数简化后为
    int main()
    {
        statements
        return 0;
    }
  •  第一行为函数头,花括号中的为函数体。
  • 每条完整的指令称为语句,语句以分号结尾。
  • 通常,main函数由启动代码调用,启动代码是由编译器添加到程序中的,是程序和操作系统之间的桥梁。事实上,该函数头描述的是main函数和操作系统之间的接口。
  • 在C语言中省略返回值相当于返回类型为int,C++逐步淘汰了这种用法。
  • C++参数列表中没有参数与参数为void等效。
  • 使用void mian()并不是标准用法,不推荐。
  • main函数没有返回值默认为return 0;,这条隐含语句只适用于main函数。
  • main函数是独立程序中必须存在的,是程序的入口,如果没有main函数,则会编译失败。DLL模块这种不是独立的程序不需要main函数。

2.1.2 C++注释

  • C++注释以//开头,注释一行,也沿用了C风格的注释/*  */。

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

  • C++和C语言一样也使用一个预处理器,该程序在进行主编译前对源文件进行处理。
  • 对于#include <iostream>;这条语句,会导致预编译器将iostream文件的内容添加到程序中,这是一种典型的预处理器操作:在源代码被编译前,替换或添加文本。
  • iostream文件的内容将被取代程序中的#include <iostream>,原始文件没有被修改,而是将源代码和iostream组合成了一个复合文件,编译的下一阶段将使用该文件。

2.1.4 头文件名

  • 像iostream这样的文件叫做包含文件,因为他们被包含在其他文件中,也叫头文件,因为他们被包含在文件的起始处。
  • C语言的风格是头文件使用.h后缀,C++头文件没有扩展名。C头文件被转换为C++文件,这些文件被重新命名,去掉了.h后缀名,前面加c,如math.h文件在C++中为cmath。

2.1.5 名称空间

  • 使用C++的iostream而不是使用iostream.h则应该使用using namespace std。表示使用名称空间std。
  • 名称空间是C++的一项特性,旨在解决函数重名问题。当多厂商代码合并时,可能会由于重名函数导致冲突。不同名称空间可以定义相同名字的函数,他们互不冲突。

2.1.6 使用cout进行C++输出

#include <iostream>

using namespace std;

int main() {
    cout << "Hello, World!" << endl;
    return 0;
}
  • <<是插入运算符,表示该语句把这个字符串发送给cout,该符号指示了信息流动的路径。cout是一个预定义对象。
  • 输出是一个流,即从程序流出的一系列字符串。
  • <<插入运算符看上去和左移运算符相同,这是一个运算符重载的例子。
  • endl比欧式重起一行,C++中也可以使用另外一种,即C语言符号\n。

2.2 C++语句

2.2.1 声明语句与变量

int carrots;
  • 上面语句提供了两项信息:需要的内存以及该内存单元的名称。int是数据类型,声明时表示需要int数据类型那么大的内存给变量,通过使用carrots这个变量名就能够访问内存中存储的值。在C++中,所有使用的变量都必须声明。
  • 程序中的声明语句叫做定义声明,简称定义,这意味着他将导致编译器为变量分配内存空间。
  • C中通常声明放在函数开始的地方,C++通常是使用前声明他。

2.2.2 赋值语句

carrots = 25;
  • 上面变量声明之后,可以将值赋值给储存单元。
  • C++和C不同的地方是,可以连续使用赋值运算符。
int num1;
int num2;
num1 = num2 = 25;

2.2.3 cout的新花样

#include <iostream>

using namespace std;

int main() {
    int carrots = 25;
    cout << carrots << endl;
    return 0;
}
  • cout还可以用于输出数字,这是因为在打印之前,cout会将整数形式的数字转换成字符串形式。
  • C++的插入运算符会根据其后的数据类型相应的调整其行为,这是一个运算符重载的例子。

2.3 其他C++ 语句

  • 输出时,<<将字符串插入到流中,输入时,cin使用>>运算符从流中抽取字符。
  • 类是用户定义的一种数据类型,要定义类,需要描述它能够表示什么信息和可对数据执行哪种行为。
  • 类有类库,像ostream和istream,从技术上来说,他们并没有被内置到C++语言中,而是语言标准指定的类。

2.4 函数

  • 在使用函数前,C++编译器必须知道函数的参数类型和返回值类型。否则编译器不知道如何编译,C++提供这种信息的方式是使用函数原型。
  • C++程序应当为程序中使用的每个函数提供原型。
  • 在使用函数时,也必须提供原型,有两种方式,一种是在源代码中输入函数原型,第二种是包含定义有原型的头文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值