您的位置:首页 > 编程语言 > C语言/C++

《C++ Primer》读书笔记第一章

2017-09-05 09:12 211 查看
笔记会持续更新,有错误的地方欢迎指正,谢谢!

第一章:开始

语言常识

一、C++进一步补充其基本特征的两种方法:

1.允许程序员自定义数据类型;

2.将有用的功能封装成库函数。

二、有两类语言:

1.动态数据类型语言:在程序运行时检查数据类型,比如:python;

2.静态数据类型语言:在编译时检查数据类型,比如:C++。

一个简单的C++程序

int main()

{

return 0;

}

结构为:返回类型,函数名,形参列表,函数体。

返回值0表示成功,非0为系统定义的错误类型。比如:返回值-1表示失败。

IO

1.C++语言未定义任何IO语句,却包含了一个标准库来提供IO机制。

2.iostream库包括输入流(标准输入:cin)和输出流(标准输出:cout,输出警告和错误消息、不缓冲:cerr,输出程序运行时的一般性的信息、要缓冲:clog)。

补充内容:

-所谓不带缓冲的I/O,并不是指内核不提供缓冲,而是只单纯的系统调用,不是函数库的调用。系统调用将数据写入到内核提供的块缓冲进行排队,当块缓冲达到一定的量时,才会把数据写入磁盘。(单缓冲)

-而带缓冲的I/O,进程提供了一个流缓冲,先把数据写入流缓冲区中,当流缓冲区满了,或刷新流缓冲,这时候才会把数据一次送往内核提供的块缓冲,再经块缓冲写入磁盘。(双重缓冲)

-总结:因此所谓的不带缓冲的I/O(未打包就传了)是指进程不提供缓冲功能,但内核还是提供缓冲的。并且,带缓冲的I/O(已提前打好包再传)在往磁盘写入相同的数据量时,会比不带缓冲的I/O调用系统调用的次数要少。

3.流:随着时间的推移,字符是顺序生成或消耗的。

4.endl的作用是结束当前行,并将与设备关联的缓冲区中的内容刷到设备中。调试时的打印应保证一直刷新流。

控制流

1.while语句

2.for语句

3.if语句

4.读取数量不定的输入数据

应用问题:如何求未知个数的数的和?

#include <iostream>
int main()
{
int sum = 0, value = 0;
while(std::cin >> value)
{
sum += value;
}
std::cout << "输入数的和为:" << sum << std::endl;
return 0;
}


while的判断条件:流状态有效则cin为真,遇文字流结尾(EOF)或无效输入为假。

类简介

类类型(class type):自定义的(在使用上像内置类型的)数据类型,为了和内置类型区别开才这样命名。

点(.)运算符只能用于类类型的对象;

::运算符为作用域运算符;

()运算符跟随在函数名之后,作用是调用函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息