C++Primer学习笔记(第五章)

1、FOR循环:

(1)C++在引入了Bool类型之后,所有的条件语句的比较结果,都被换成了Bool的字面值TRUE或者FALSE,不在是以前的1和0.引入了布尔类型之后更加的灵活,在需要整型的时候,布尔类型会自动转化成整型,在需要bool类型的时候又会转化回来.

(2)C++中的赋值表达式是有值得,它规定赋值表达式的值是左侧的值。并且要注意的是,赋值运算符是从右向左结合的。

(3)cout在显示bool值得时候,会将Bool值转化为int值。

(4)在判定表达式的时候如果改变了内存中的数值,那么我们就说,这是表达式的副作用

(5)所有的表达式都有值,所有的语句都有分号,可以在表达式的末尾加上分号变成语句,即使语句可能是没有意义的。

(6)在修改了规则的for语句之后,for(int i = 0; i < 9; i++),int i = 0;是一条赋值语句,它后面接着的分号是这个赋值语句的,不是for循环里面的分号。for循环的格式被修改为for(for int statement; expression),for循环中只有一个分号,而多出来的那个分号是前面表达式语句带来的。

(7)C++中的自增自减运算符,在没有使用变量值的时候在逻辑上是没有区别的。但是对于用户定义的类型在速度上确实有细微的差别。前缀是先将结果+1然后返回值,后缀是先复制一个值的副本,然后+1,然后将复制的副本值返回,此时使用的是没有被修改的副本值。并且后缀运算符要比前缀运算符的级别要高。

(8)后缀运算符以从左到右的方式结合, 前缀运算符以从右到左的方式结合。

(9)在一段代码块,也就是大括号扩起来的代码块内定义变量,那么这个变量的作用域只是在这个代码块的区域。并且局部变量会屏蔽掉外部的同名全局变量,在代码块内。

(10)在循环体代码块内部声明的变量,没个循环之后都会被创建和回收,所以开销比较大。

(11)逗号运算符的功能和特性如下:

作为在for循环中,把几个表达式当作一个表达式来看待。

    在变量初始化和赋值的时候,可以作为列表分隔符来使用。

逗号隔开的表达式是要按照从左到右的顺序进行计算的,逗号表达式的值是右边的值

逗号运算符是优先级最低的运算符

(12)关系运算符的优先级比算术优先级低

(13)“da”这个字符串常量实际上表示的是一个地址。

2、while循环

(1)string对象不会以空字符来标志一个字符串的结尾 

(2)为数据类型建立别名可以使用define或者typedef,typedef不会创建新的类型,只是把现有的类型指定一个别的名称,并且,生命一系列变量的时候,利用define声明的别名,可能只会改变挨着它的那个变量,接下来的变量不会被指定为目标类型,而typedef不会出现这样的情况。

#define p int*

p a, b;  //这样的结果只是把a变为Int指针类型,而b不会,但是如果要用typedef就不会出现这种情况。

3、关于cin

在利用cin读取字符的时候,如果利用文件的重定向,让文件的内容作为键盘输入的话,那么如果读取到文件末尾的EOF,那么cin会将两个对象的标志设为true,以至于程序不能在读取文件结束符以后的内容,但是如果是键盘模拟EOF,在模拟之后还要继续读入内容的话可以利用cin.clear()这个成员函数来清楚EOF标记,以至于可以继续输入字符。

并且在读取输入的时候,在需要判断的地方,cin会利用转化函数把cin出现的地方变为bool值,如果读取成功是true,否则是false。并且这种转化不是简单意义上的把非0值转化为TRUE,他是根据实际的输入结果,比如输入EOF的时候,是非0值,但是由于转化函数能够识别,则会把当前返回的cin对象设置诶FALSE。

cin.get()返回一个int值,cin.get(ch)返回的是一个cin对象。

//每次输入一个字符到EOF为止
cin.get(ch);
while(cin.fail() == false)
{
	cin.get(ch);
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值