标签:成员 没有 自动 第四章 形式 c++ prime inter 优化 如何
一元运算符和二元运算符
左值和右值
求值顺序
int i = f1() * f(2)
,我们可以确定f1和f2会在乘法之前被调用,但是无法确定他们之间哪个会被更早的调用cout << i << " " << ++i << endl;
这样的语句结果是不可预知的f() + g() * h()
这样的表达式中,如果函数之间是无关函数,那么他们的调用顺序不受限制,否则如果其中一个函数会影响其他函数的结果,则它是一条错误表达式cast-name<type>(expression)
static_cast
,dynamic_cast
,const_cast
和reinterpret_cast
中的一种double s = static_cast<double>(j) / i;
void *p = &d; double *s = static_cast<double*>(p);
const char *pc;
char *p = const_cast<char*>(pc); //正确,但是通过p写值是未定义的行为
const char *cp;
char *q = static_cast<char*>(cp); //错误:static_cast不能转换掉const性质
static_cast<string>(cp); //正确:字符串字面值转换成string类型
const_cast<string>(cp); //错误:const_cast只能改变常量属性
int *ip; char* pc = reinterpret_cast<char*>(ip);
string str(pc);
可能导致异常标签:成员 没有 自动 第四章 形式 c++ prime inter 优化 如何
原文地址:https://www.cnblogs.com/Hugh-Locke/p/13216147.html