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

 

posted @ 2017-02-02 10:48  xkfx  阅读(106)  评论(0编辑  收藏  举报