c++第九天
《c++ primer, 5E》
第58页到第64页,笔记:
1、运行时才能获得具体值的常量不属于常量表达式(constexpr)。
2、如果认定变量是一个常量表达式,那就把它声明成constexpr。
3、定义于所以函数体之外的对象其地址固定不变。
4、在typedef char *pstring中,pstring是指向char的指针,
因此const pstring 就是指向char 的常量指针。
5、auto一般会忽略掉顶层const。
6、不能为非常量引用绑定字面值。
7、c++11:auto与decltype的区别。引用在任何地方都被当作别名对待,
只有在decltype处是一个例外。
8、int *p = &i,对p进行解引用得到的是引用类型,故decltype(*p)结果类型是int&。
9、decltype((variable))的结果永远是引用。赋值是会产生引用类型的典型表达式,
引用类型就是左值类型,表达式i=x的结果类型是int&(表达式本身也有值, 可以作为操作数)
遇到的问题:
1、以c++11标准编译:g++ -g -Wall -std=c++11 prog1.cpp。
课后练习:
练习2.32
非法。
练习2.33
合法; 合法; 合法;
非法; 非法; 非法;
练习2.34
略
练习2.35
i是int常量;
j是int变量;
k是i的引用;
p是指向常量的指针;
j2是int常量;
k2是i的引用;
练习2.36
c是int型,结束后是4;
d是a的引用,结果是3;
练习2.37
c是int型, 值为3;
d是int型的引用,值为3;
练习2.38
略