C++ Primer Plus 第五章
来源:互联网 发布:网易企业邮箱域名 编辑:程序博客网 时间:2024/06/06 07:23
y = (4 + x ++) + (6 + x++); 4 + x++ 不是一个完整表达式,因此,C++不保证x的值在计算子表达式 4 + x++后立刻增加1,C++只能保证这一条语句执行完后,x增加2
++n与n++,如果是用户定义的类类型,那么后缀版本首先复杂一个拷贝,将其+1,然后将复杂的拷贝返回,所以后缀版本会更快一些;但对于内置类型,则没有区别
前缀递增,前缀递减,解引用操作符优先级相同,以从右至左的方式结合。后缀递增,后缀递减的优先级相同,但比前缀操作符的优先级高,并以左到右的方式结合。
后缀递增,后缀递减 | 左到右
前缀递增,前缀递减,解引用操作符 | 右到左
语句块(即{}括起来的)
在语句块中定义的变量将覆盖外部变量,并且变量将只在语句块中使用
逗号表达式中的逗号操作符是一个顺序点(即C++会保证所有的表达式运算计算完,如递增,递减);逗号表达式的值是最后一个表达式;逗号操作符的优先级是最低的
例如cata = 17 , 240,则cat值为17;cata = (17, 240), 则cat值为240;
关系操作符 一般比 算术操作符 优先级 低
char word[5];
word == "mate"
这个表达式不是判断两个字符串内容是否相等,而是word与"mate"的首地址是否相等。
int strcmp ( const char * str1, const char * str2 ); 比较两个C风格字符串大小关系,相等返回0;此外 str1 > str2 return 正数; str1 < str2 return 负数;
string word;
word == "mate";"mate" == word;
此时都是在判断判断两个字符串内容相等(用重载与友元完成)
typedef 创建别名,其并不会创建新的类型,而是为已有的类型建立一个新名称。
char ch;
cin >> ch;cin在读取基本类型时,会忽略空格,换行符,消费掉,但不会保存。
cin.get(ch);会读取所有的类型(note,这里的写法的C中是错的,但是在C++中cin.get(char &)是声明为引用的,所以不会错
EOF文件尾,检测到EOF后,cin将 eofbit failbit 设置为1,可以通过cin.eof()与cin.fail()成员函数来查看。可以用cin.clear()来清除标志位
cin.get(char)方法的返回值是一个cin对象,istrean类型提供了一个可以将istream对象转换为bool值的函数;所以在cin需要bool值的地方,该转换函数将被调用,如while(cin)
char ch;
ch = cin.get();
cin.get(ch);
都是读取值到ch中,但是 cin.get()的返回值是一个char, cin.get(ch)返回值是一个cin
常量值EOF表示未见尾
++n与n++,如果是用户定义的类类型,那么后缀版本首先复杂一个拷贝,将其+1,然后将复杂的拷贝返回,所以后缀版本会更快一些;但对于内置类型,则没有区别
前缀递增,前缀递减,解引用操作符优先级相同,以从右至左的方式结合。后缀递增,后缀递减的优先级相同,但比前缀操作符的优先级高,并以左到右的方式结合。
后缀递增,后缀递减 | 左到右
前缀递增,前缀递减,解引用操作符 | 右到左
语句块(即{}括起来的)
在语句块中定义的变量将覆盖外部变量,并且变量将只在语句块中使用
逗号表达式中的逗号操作符是一个顺序点(即C++会保证所有的表达式运算计算完,如递增,递减);逗号表达式的值是最后一个表达式;逗号操作符的优先级是最低的
例如cata = 17 , 240,则cat值为17;cata = (17, 240), 则cat值为240;
关系操作符 一般比 算术操作符 优先级 低
char word[5];
word == "mate"
这个表达式不是判断两个字符串内容是否相等,而是word与"mate"的首地址是否相等。
int strcmp ( const char * str1, const char * str2 ); 比较两个C风格字符串大小关系,相等返回0;此外 str1 > str2 return 正数; str1 < str2 return 负数;
string word;
word == "mate";"mate" == word;
此时都是在判断判断两个字符串内容相等(用重载与友元完成)
typedef 创建别名,其并不会创建新的类型,而是为已有的类型建立一个新名称。
char ch;
cin >> ch;cin在读取基本类型时,会忽略空格,换行符,消费掉,但不会保存。
cin.get(ch);会读取所有的类型(note,这里的写法的C中是错的,但是在C++中cin.get(char &)是声明为引用的,所以不会错
EOF文件尾,检测到EOF后,cin将 eofbit failbit 设置为1,可以通过cin.eof()与cin.fail()成员函数来查看。可以用cin.clear()来清除标志位
cin.get(char)方法的返回值是一个cin对象,istrean类型提供了一个可以将istream对象转换为bool值的函数;所以在cin需要bool值的地方,该转换函数将被调用,如while(cin)
char ch;
ch = cin.get();
cin.get(ch);
都是读取值到ch中,但是 cin.get()的返回值是一个char, cin.get(ch)返回值是一个cin
常量值EOF表示未见尾
0 0
- C Primer Plus 第五章
- C Primer Plus 第五章
- 《C Primer Plus》第五章编程题
- C Primer Plus 第五章习题
- C++primer plus 第五章习题!
- c++primer plus第五章编程练习
- C Primer Plus 第五版
- C primer plus(第五版)编程练习第五章
- C++.Primer.Plus第五版第五章编程练习答案
- C Primer Plus (第五版) 第五章 编程练习 答案
- C++ Primer Plus 第五章
- 《C Primer Plus 第五版》第十章编程练习
- C++primer plus(第四版)第五章习题参考
- 《c primer plus》编程练习回顾-第五章
- C Primer Plus 第五章学习总结 2015.4.19
- C primer plus(第五版)编程练习第二章
- C primer plus(第五版)编程练习第三章
- C primer plus(第五版)编程练习第四章
- 用GDB调试NGINX
- C 语言的若干问题(持续更新中)
- C++ Primer Plus 第四章
- gdb调试nginx要点
- 算法概念
- C++ Primer Plus 第五章
- java float和double精度问题
- 使用NSJSONSerialization的注意事项,NSInvalidArgumentException异常
- 利用gdb调试nginx
- 深入理解计算机系统 第一章
- matlab配置
- cin.get 用法
- java设计模式示例程序之 ——简单工厂、工厂方法、抽象工厂模式
- ORA-12162: TNS:net service name is incorrectly specified