摘要:
编译器能以任意顺序对形参进行求值 函数的返回类型不能是数组类型和函数类型。 函数开始时为形参分配内存,一旦函数结束,形参也就被销毁了。 如果弄成静态局部变量,那么回到程序终止结束时才被销毁。 形参类型决定了形参与实参的交互方式 使用引用避免拷贝: 拷贝大的类类型或者容器的对象比较低效,甚至有的类类型 阅读全文
摘要:
无符号之间的运算 当一个是无符号类型,另外一个是带符号类型: 如果无符号不小于带符号,那么带符号转换成无符号。 如果无符号小于带符号,当无符号类型的所有值都能存到带符号中时,则无符号转换成带符号,否则, 带符号类型转换成无符号类型。 比如: 有两个类型分别是 long 和 unsigned int, 阅读全文
摘要:
定义: 左值:用的是对象的身份 右值:用的是对象的值(内存) decltype: <!--more--> 当其作用于表达式时,如果求值结果是左值,那么返回一个引用 如果求值结果是右值,那么返回正常 int*p; decltype(*p); //解引用运算生成左值,所以结果是int& decltype 阅读全文
摘要:
定义: 主要是求值顺序的问题 int i = f1() + f2(); //我们无法知道是f1 还是 f2先被调用 而且求值顺序和优先级和结合律无关,比如: f() + g()*h() + j() 优先级:g()的返回值和h()的返回值相乘。 但是并没确定调用顺序 for(auto it = beg 阅读全文
摘要:
Const int size = 512; 在编译的时候,编译器会把用到该变量的地方全部替换成对应的值。 const&可以绑定字面值,所以当用常量引用绑定一个常量时,是否可以看成那个值在编译阶段已经被替换了 如果程序有多个文件,则用了const对象的文件必须要能访问到const的初始值才行,所以每个 阅读全文