C++ Primer 阅读笔记(1-2章)

1 用istream对象作为条件时,其效果是检验流的状态。如果流是有效的,即未遇到未知错误,那么检测成功。当遇到文件结束符,或遇到一个无效输入时,istream的对象将会变成无效,处于无效状态的istream对象会使条件变为假。
2:cerr:一个ostream对象,写入cerr的数据是不缓冲的,通常用于输出错误信息。
3:clog:一个ostream对象,写入clog的数据是缓冲的,用于报告程序的执行信息,存入日志文档。
4:基本数据类型:算数类型(整型(包括字符和布尔),浮点型)和空类型;
5:float:六位有效数字;double:十位有效数字;
6:算术表达式中既有无符号数又有int值,int值转换成无符号数;
7:\后跟八进制数(1-3个数字) \7响铃 \12换行符 \40空格符 \0空字符 \115 字符M \x4d字符 M
如果数字超过3个前三个数字与\构成转义序列 \1234 表示两个字符 \123和4
8:初始化不是赋值,初始化的含义是创建一个变量时赋予一个初始值,而赋值的含义是把对象的当前值擦掉,以另一个值来替代;
9:分离式编译:
声明:使得名字为程序所知;定义:创建于名字相关联的实体;
变量可以多次声明,只能定义一次;
10:引用:
引用必须初始化,其必须为对象;
引用的数据类型必须跟其对象相同;
引用不是对象;
11:空指针:nullptr
12:两个相同类型的合法指针,可以用==和!=比较,结果为布尔型
13:void可以存放任意对象的地址,可以指向任意非常量的指针类型,不能解引用;
14:int * p,q; p是一个指向int的指针, q是int型变量;
15:int i =42,int
q;int* &r=q/r是指针q的引用;r=&i,*r=0; //要理解r的类型是什么,从左到右阅读r的定义,离变量名最近的符号对变量有最直接的影响;
16:const对象一旦创立其值就不能改变,所以 const对象必须初始化;
int j = 12;const int i = j;int t = i;(都是正确的)
17:不能让一个非常量引用指向一个常量对象;
const int c = 12;int& r=c(错误);
int i=12;const int &r = i(允许const int& 绑到普通的int对象上)
18:常量指针和指针常量:
常量指针
允许指向常量的指针指向非常量的对象:double dval=3.14;cptr=&dval(正确)
所谓指向常量的指针仅仅要求不能通过该指针改变对象的值;
指针常量
顶层const:指针是一个常量;
底层const:指针所指的对象是常量;
19:常量表达式是指值不会改变,在编译过程中就能得到结果的表达式
C++11允许将变量声明为constexpr类型以便来验证变量值是否是一个常量表达式;
constexp(声明的constexpr一定为常量)r必须初始值为nullptr或0;仅对指针有效,与指针所指的对象无关;
20:类型别名:using L = Iong
21:auto:类型说明符,auto让编译器通过初始值来推算变量的类型(auto定义的变量必须有初始值);
22:decltype(类型指示符):选择并返回操作数的数据类型,它的作用是选择并返回操作数的数据类型,只能得到类型,却不实际计算表达式的值:
decltype(f()) sum = x(sum 的类型就是f()的返回类型);
编译器不会调用f(),而是当调用发生时f的返回类型作为sum的类型;
如果decltype使用的表达式不是变量,则decltype则返回表达式结果对应的类型
在这里插入图片描述
*p解引用可以得到指针的对象
在这里插入图片描述

23:编写自己的头文件:类通常被定义在头文件中,而且类所在的头文件的名字与类名相同
头文件保护符:#ifndef #endif;头文件保护符必须唯一、预处理变量名字大写;
24:常量表达式:能在编译时计算并获得结果的表达式;
25:数据成员:组成对象的数据元素,类的每个对象都有数据成员的一份拷贝,数据成员可以在类的内部同时初始化
26:字面值:不可改变的值;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值