ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c++表达式学习笔记

2021-07-26 16:02:38  阅读:114  来源: 互联网

标签:转换成 运算 ## 笔记 运算符 c++ 类型 表达式 赋值


##vecter赋值运算符
对于类来说,赋值运算的细节由类本身决定,对于vector来说,vector模块重载了赋值运算符号并且可以接受初始值列表

vector<int> vi;               //我们是没有初始化的
vi = {0,1,2,3,4,5,6,7,8,9};  //vi现在含有10个元素

无论左侧运算对象的类型是什么,初始化列表都可以为空,此时,编译器创建一个值初始化的临时量并将其赋值给左侧运算对象

##赋值运算满足右结合律

int ival, jval;
ival = jval = 0;    //jval作为靠左的赋值运算符的右侧运算对象

##自增自减的后置版本
后置版本需要将原始值存储下来以便于返回这个未修改的内容,如果我们不需要修改前的值,那么后置版本就是一种浪费

##后置递增运算符的优先级高于解引用运算符

auto pbeg = v.begin();
while (pbeg != v.end() && *pbeg >= 0)
      cout << *pbeg++ <<endl;

##嵌套条件运算符

finalgrade = (grade > 90) ? "high pass" : (grade < 60) ? "fail" : "pass";

条件运符满足右结合性,意味着 运算对象按照从右向左的顺序组合,靠右边的条件运算构成了靠左边的条件运算的分支

##在输出表达式中使用条件运算符

条件表达式的优先级非常低,使用的时候通常要加上括号.

cout << ((grade < 60) ? "fail" : "pass"));    //输出"pass" 或者 "fail"
cout << (grade < 60) ? "fail" : "pass";   // 输出 0 或者 1
cout << grade < 60 ? "fail" : "pass"    //错误,试图比较count 和 60

##sizeof
1.sizeof 不会只会返回string 和 vector 固定部分的大小
2.sizeof 不会把数组转换成指针,会计算整个数组的大小

##算数转换
1.算数转换的规则定义了一套类型转换的层次,其中元算符的运算对象将转换成最宽的类型.
2.当表达式中既有浮点类型也有整数类型时,整数值将转换成相应的浮点类型.
3.**转换后的类型要能容纳类型所有可能的值.
4.如果有无符号和有符号的,那么都要转换成无符号的.

##其他隐式类型转换
数组转换成指针,数组自动转换成指向数组首元素的指针.
例外:当数组被用作decltype关键字的参数,或者取地址符,sizeof及typeid等运算对象时.

类类型的转换
编译器每次只能执行一次类类型的转换

string s, t = "a value"; //字符串字面值转换成sting类型
while (cin >> s)  //while的条件部分吧cin转换成布尔值

io库定义了从istream 向布尔值转换的规则. cin自动转换成布尔值,由输入流的状态决定.

标签:转换成,运算,##,笔记,运算符,c++,类型,表达式,赋值
来源: https://blog.csdn.net/weixin_51781547/article/details/119111332

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有