优先级表表明,赋值运算符是从右向左结合的
定义一个const值来表示数组中元素的个数是一个好办法
对同一条语句的同一个值递增或递减多次,C++没有定义这种行为,也就是说这条语句在不同的系统上将生成不同的结果。
前缀运算符的效率高于后缀运算符
前缀运算符和解除引用运算符的优先级相同,以从右向左的方式结合;
后缀运算符的优先级高于前缀运算符和引用运算符,以从左向右的方式结合。
当C++语法只允许放一个表达式时,可使用逗号运算符将几个表达式合为一个,但不能将两个声明组合起来,可使用一个声明语句表达式来创建并初始化两个变量。
在所有运算符中,逗号表达式的优先级是最低的:它确保首先计算第一个表达式再计算第二个表达式,它的值是最后一个表达式的值。
C++提供了6种运算符来对数字进行比较,也可将这些运算符用于字符,但不能用于C-风格字符串,但可用于string类对象。
C-风格字符串应用strcmp( )函数来比较,若第一个字符串小于第二个则返回赋值,若大于返回正值,若相等返回0,即不等时是true,相等时是false。
C-风格的两个字符串即使存储在长度不同的数组中,也可能是相同的,这是因为C-风格字符串是通过结尾的空值字符定义的,而不是其所在的数组长度定义的。
C++一般使用for循环进行循环计数,在无法预先知道将执行的次数时,使用while循环。
for循环中省略了测试条件时,则认为条件为true。
编写延时循环:
ANSI和C++库中的clock( )函数返回程序开始执行后所用的系统时间。
头文件ctime提供了常量CLOCKS_PER_SEC,该常量等于每秒钟包含的系统单位数
将系统时间除以该常量得到秒数,或将秒数乘以该常量得到以系统时间为单位的时间
clock_t类型可将得到的乘积结果转换成适合当前系统的结果
C++11新增了一种基于范围的for循环:
仅仅显示元素:
for ( 类型 : 数组)循环体
修改数组元素:
for ( & 类型 : 数组)循环体
使用cin进行输入:
原始的cin进行输入:cin>>char
忽略空格和换行符,制表符
输入内容被缓冲,只有用户在按下回车键后,输入的内容才被发送给程序
使用cin.get(char)进行输入:读取空格,换行符,制表符
属性 |
cin.get(ch) | ch=cin.get( ) |
传输输入字符的方式 | 赋给参数ch | 将函数返回值赋给ch |
用于字符输入时函数的返回值 | istream(执行bool转换后为true) | int类型的字符编码 |
到达EOF时函数的返回值 | istream(执行bool转换后为false) | EOF |
检测到EOF后,cin将两位(eofbit和failbit)设置为1,可通过cin.eof( )来查看eofbit是否被设置,而cin.fail( )可以查看eofbit或failbit是否被设置
istream类提供了一个可以将istream对象转换为bool值的函数;当cin出现在需要bool值的地方时,该转换函数自动被调用
由于EOF不是的不是有效的字符编码,因此有可能不与char类型兼容。如果要使用cin.get( )测试EOF,则必须将返回值赋给int变量,在显示时强制转换为char类型。
get( )的主要用途是将stdio.h的getchar( )和putchar( )函数转换为iostream的cin.get( )和cout.put( )
来源:oschina
链接:https://my.oschina.net/u/1398794/blog/530572