文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>C++第五章表达式

C++第五章表达式

时间:2010-07-29  来源:静止的流水

最简单的表达式仅包含一个字面值常量或变量

不允许为表达式赋值

C++提供一元操作符和二元操作符还有唯一的一个三元条件表达式

有些操作符既可以表示一元也可以表示二元,如*号

优先级

结合性:一般除了赋值操作符是右结合的,都是左结合的

求值顺序:操作符并没有规定两个表达式的求值顺序,比如fa()+fb();fa和fb哪个先执行并没有规定,当左右两个表达式都涉及到同一个对象的时候并改变其值的时候(未定义的行为)

如果两个操作数是负数,则除法结果是正数,求模结果是负数

不能串接使用关系操作符类似于if(x<y<z) x<y返回bool值,然后与z比较的时候bool值转化为int值0或1

位操作符:~求反,<<左移(补0),>>右移(补符号位或0),&位与,^位异或,|位或

不要混淆了赋值操作符和相等操作符

前自增自减返回的是左值,后自增自减返回的是右值

Sizeof用于表达式的时候,并没有计算表达式的值,获得的是表达式结果的类型长度

数组名在用于sizeof和对数组引用初始化的时候和取地址操作的时候没有退化为指针

逗号操作符,表达式从左向右计算,结果是最右边表达式的值,如果最右边是左值,则逗号表达式的值也是左值

Int a(5),b(6);

Cout<<(a,b)<<endl;//6

(a=20,b)=10;

Cout<<a<<endl;//20

Coub<<b<<endl;//10

&&||当右边表达式确实影响整个表达式求值的时候,才对右表达式求值

New表达式返回新创建对象的指针,可以用初始化变量的方式实现初始化int *p = new ine(1023);如果不提供显示初始化,与内置类型在函数内定义有相同的初始化规则。0或调用默认构造函数。

Int *p = new int;//没初始化

Int *p = new int();//初始化为0

删除0值的指针式合法的

但是删除不是new分配的内存的指针,行为时未定义的

删除指针后,指针为悬垂指针,应当立即置为0

Const int *p = new const int();

Delete p;

隐式类型转换

1.混合类型的表达式中2。 条件表达式中专为bool。3。初始化某个变量4。 函数调用的时候

整形提升,char signed char ,unsigned char ,short ,unsigned short相运算的时候,都转换为int类型

显示类型转换static_cast,dynamic_cast,reinterpret_cast,const_cast;

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载