C++ Primer 学习笔记(1)

第一章 开始

1.1 编写一个简单的C++程序

main函数的返回类型必须为int。

返回值0表明成功,非0的返回值的含义由系统定义,通常用来指出错误类型。

编译、运行程序:

如何编译程序依赖于操作系统和编译器。

在不同操作和编译器系统中,运行C++编译器的命令也各不相同。最常用的编译器是GNU编译器和微软Visual Studio编译器。

GNU:如果指定可执行文件的文件名,UNIX系统没有后缀,Windows系统后缀为exe;

            如果未指定可执行文件的文件名,UNIX系统为a.out,Windows系统为a.exe。

*Windows运行可执行文件时,后缀可以忽略。

编译器的一部分工作是寻找程序文本中的错误:1、语法错误;2、类型错误;3、声明错误。两种常见的声明错误是:对来自标准库的名字忘记使用std::、标识符名字拼写错误。

编辑—编译—调试

访问mian的返回值:

Windows:$ echo %ERRORLEVEL%

Unix:$ echo $?

1.2 初始输入输出

标准输入:cin

标准输出:cout、cerr、clog

程序员常常在调试时添加打印语句,这类语句应该保证一直“刷新流”。否则,如果程序崩溃,输出可能还留在缓冲区中,从而导致关于程序崩溃位置的错误推断。

标准库定义的所有名字都在命名空间std中。

标准库定义了不同版本的输入输出运算符,来处理不同类型的运算对象。

1.3 注释简介

C++有两种注释:单行注释和界定符对注释

注释界定符不能嵌套

注释代码最好的方式是用单行注释方式注释掉代码段的每一行

1.4 控制流

1.4.1 while

1.4.2 for 循环头由三个部分组成:初始化语句、循环条件、表达式,表达式在for循环体之后执行。

1.4.3 读取数量不定的输入数据

int sum = 0, value = 0;
while(std::cin >> value) {
  sum += value;
}
std::cout << "Sum is: " << sum << std::endl;

此循环条件实际上检测的是std::cin。当我们使用一个istream对象作为条件时,其效果是检测流的状态。如果流是有效的,即流未遇到错误,那么检测成功。当遇到文件结束符,或遇到一个无效输入时(如不同类型),istream的状态就会变为无效。

当从键盘向程序输入数据时,对于如何指出文件结束,不同操作系统有不同的约定。

Windows:输入文件结束符的方法是敲Ctrl+Z,然后按Enter或Return键;

UNIX:文件结束符输入是用Ctrl+D。

1.4.4 if

1.5 类简介

我们通过定义一个类来定义自己的数据结构。一个类定义了一个类型,以及与其关联的一组操作。

包含来自标准库的头文件时,应该用尖括号(<>)包围头文件名,标准库头文件通常不带后缀;对于不属于标准库的头文件,则用双引号("")包围。

文件重定向。

术语:

赋值:抹去一个对象的当前值,用一个新值取代之。

初始化:在一个对象创建的时候赋予它一个值。

库类型:标准库定义的类型。

操纵符:如std::endl,在读写流的时候用来操纵“流”本身。

头文件:使类或其他名字的定义可被多个程序使用的一种机制。

源文件:包含C++程序的文件。

函数:具名的计算单元。

变量:具名对象。

未初始化的变量:未赋予初值的变量。类类型的变量如果未指定初值,则按类定义指定的方式进行初始化。定义在函数内部的内置类型变量默认是不初始化的,除非有显式的初始化语句。(这句话如何理解:如果想自己调试看,不同的编译器有不同的结果,程序定义变量的方式就是在内存中选一段大小为 sizeof xx 的内存,局部变量的值取决于这块内存,有点编译器会初始化成0,这跟标准无关)。试图使用一个未初始化变量的值是错误的,未初始化变量是bug的常见原因。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值