4.3 C++Primer读书笔记

4.3

1、cerr
   一个ostream对象,关联到标准错误,通常写入到与标准输出相同的设备。默认情况下,写到cerr的数据是“不缓冲的”。--------cerr通常用于输出错误信息或者其他不属于程序正常逻辑的输出内容。


2、clog
   一个ostream对象,关联到标准错误。默认情况下,写到clog的数据是“被缓冲”。-----clog通常用于报告程序的执行信息,存入一个日志文件中。


3、命名空间
   将库定义的名字放在一个单一的位置的机制。命名空间可以帮助避免不经意的名字冲突。C++标准库顶一顶额名字在命名空间std中。


4、大多数编程语言通过两种方式来进一步补充其基本特征:


   1、赋予程序员自定义数据类型的权利,从而实现对语言的扩展。
   2、将一些有用的功能封装成库函数提供给程序员。


5、一些语言,如Smalltalk和Python等,在程序运行时槛车数据类型,与之相反,C++是一种静态数据类型语言,它的类型检查发生在编译时。


6、C++语言主要的一个设计目标就是让程序员自定义的数据类型向内置类型一样好用。


7、数据类型决定了程序中数据和操作的意义。


8、基本内置类型:
   包括
       
   1、算数类型:字符、整形数、布尔值和浮点数。
   2、空类型:常用与返回值。


9、基本的字符类型是char,一个char的大小和一个机器字节一样。


10、
   计算机以比特序列存储数据,每个比特非0即1.也就是“位”
   可寻址的最小内存块称为“字节”。
   存储的基本单元称为“字”。 


****说明:一个字节是8位。而平时所说的几位几位的计算机,是指计算机一次能处理多少位,以32为为例,一次处理32位,也就是4个字节,一个字。


11、
   出去布尔型和扩展的字符型之外,其他整形可以划分为带符号的和无符号两种。其中,无符号类型仅能是大于等于0的值。包括0.


   unsigned  默认为 unsigned int 
   与其他整型不同,字符型被分为了三种:
   char  
   signed char
   unsigned char


12、类型转换
    1、给无符号的类型赋一个超出它范围的值时,结果是初始值对无符号类型表示数值总数取模后的余数。
    例如:17%-10 = (-1 * -10 )+7
          -1%256 = -1 * 256 +255-----结果就是255


    2、如果给一个带符号的赋值超出了它的范围,则这个值是未定义的。


13、避免两种行为
    1、无法预知的行为。
    2、避免依赖于现实环境的行为。--如果我们把int的尺寸堪称是一个确定不变的已知值,那么这样的程序就称作不可移植的。


14.
   定义了一个无符号的i;
   用while来代替for循环解决死循环问题。
   但是--i,初值大于预期1.


15、提示:切勿混用带符号类型和无符号类型
   
    如果表达式里既有带符号类型又有无符号类型,当带符号类型取值为负时会出现异常结果,这是因为---带符号数会自动转换成无符号数。
    例如:
    int a=-1;
    unsigned b=1;   ]
    cout<<a*b<<endl;


    结果为4294967295(-1%2^32)


16、string是一种库类型,表示一个可变长的字符序列。


17、初始化和赋值:
    初始化不是赋值,初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦出,而以一个新值来替代。       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值