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

笔记会持续更新,有错误的地方欢迎指正,谢谢!

第一章:开始

语言常识

一、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):自定义的(在使用上像内置类型的)数据类型,为了和内置类型区别开才这样命名。
点(.)运算符只能用于类类型的对象;
::运算符为作用域运算符;
()运算符跟随在函数名之后,作用是调用函数。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值