您的位置:首页 > 编程语言 > C语言/C++

C++学习笔记之表达式

2017-07-27 11:14 281 查看
表达式中如果没有指定运算的顺序,表达式如果指向并修改了同一个变量会引发未知错误,因为程序不知道先对变量执行什么操作。

以下几个运算符指定了执行顺序。

&&  从左到右,只有左侧值为真才执行右侧

||  同上

? :  从左到右计算

,  规定了逗号运算符的计算顺序,从左到右计算,左侧计算以后将左侧的值丢弃,再计算右侧的值,逗号运算符的真正结果是逗号右侧的值。逗号运算符的优先级非常低,比其他运算符都低。

注意:

1.确定不了的时候加括号,让运算的顺序更清晰。

2.一旦在表达式中改变了某个对象的值,在其他地方就不要在使用这个对象了。

整数相除的结果还是整数,多余的部分被剔除了。21/6=3 

两个数相除,只要两个数的符号相同,结果就是正数,符号不同,结果是负数。

取余不一样%,如果取余的两个对象符号相同,结果是正数,符号不同,m%(-n)=m%n, (-m)%n=-(m%n)

想要表达a>b,b>c,c>d需要用表达式:a>b&&b>c&&c>d, 不能连着写,那样会造成错误

建议除非必须,否则都用++i 

iter++返回的是iter加1之前的值。cout<<*iter++<<endl;这种写法比较好,*iter++ = *(iter++); 

成员访问运算符:

有两种成员访问运算符,一种是.,一种是->,点运算符获取类对象的一个成员,箭头和点运算符有关系 a->m=(*a).m

sizeof运算符

对引用类型进行sizeof运算得到被引用对象所占空间的大小

对指针进行sizeof运算得到指针本身所占空间的大小 int* p; sizeof p;

对解引用指针进行sizeof运算得到指针指向的对象所占空间的大小,指针无需有效 int *p; sizeof *p;

对数组进行sizeof运算得到数组的大小

对string或vector进行sizeof运算得到该类型固定部分的大小,不计算对象中的元素占据了多少空间
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: