C++Primer第五版 2.5.2节练习
2015-09-11 07:33
489 查看
练习2.33:利用本节定义的变量,判断下列语句的运行结果。
练习2.34;基于上一个练习中的变量和语句编写一段程序,输出赋值前后变量的内容,你刚才的推断正确吗?如果不对,请反复研读本节的示例直到你明白错在何处为止。
答案:2.3,2.4
int i = 0, &r = i;
auto a = r;// int a =r;
2.33 ,2.34
a b c都是整型=42
d 为指针 无法从int 转换为int* e 无法从int 到const int* g 整型常量引用 不能给常量赋值
练习2.35:判断下列定义推断出的类型是什么,然后编写程序进行验证。
const int i = 42;
auto j = i; //int j = i;
const auto &k = i; //const int &k = i;
auto *p = &I; //const int *p = &i;
const auto j2 = i, &k2 = I; //const int j2 = i, &k2 =i;
练习2.34;基于上一个练习中的变量和语句编写一段程序,输出赋值前后变量的内容,你刚才的推断正确吗?如果不对,请反复研读本节的示例直到你明白错在何处为止。
答案:2.3,2.4
int i = 0, &r = i;
auto a = r;// int a =r;
const int ci = i, &cr = ci; auto b = ci; // int b = ci; auto c = cr; // int c = cr; auto d = &i; // int * d = i; auto e = &ci;// const int * e = &ci; const auto f = ci; // const int f = ci; auto &g = ci; // const int &g =ci; //auto &h = 42; a = 42;//正确。i,r,的值变为42 b = 42;//正确,b的值变为42 c = 42;//正确,c的值变为42 d = 42;// d是指向i的整型指针,不能赋值 e = 42;//e是指针,不能赋值 g = 42;//g和ci绑定,无法通过赋值来改变ci
2.33 ,2.34
a b c都是整型=42
d 为指针 无法从int 转换为int* e 无法从int 到const int* g 整型常量引用 不能给常量赋值
练习2.35:判断下列定义推断出的类型是什么,然后编写程序进行验证。
const int i = 42;
auto j = i; //int j = i;
const auto &k = i; //const int &k = i;
auto *p = &I; //const int *p = &i;
const auto j2 = i, &k2 = I; //const int j2 = i, &k2 =i;
相关文章推荐
- C++Primer第五版 2.4.4节练习
- C++Primer第五版 2.4.3节练习
- C++Primer第五版 2.4.2节练习
- C++Primer第五版 2.4节练习
- C++Primer第五版 2.3.3节练习
- 遍历二叉树的各种操作(非递归遍历) C++
- 有序数组转化为二叉树 C++
- Leetcode Maximum Subarray
- 2015.09.10 hihoCoder(C++)
- VC++平台上的内存对齐操作
- C++ 基础调试手段
- C语言在文件中查找字符串是否在某行,显示行号和该行内容
- C++ 中while 比较少见的一种形式
- C++ lambda表达式
- 解决No “rule to make target `../Database/images/login.png', needed by `debug/qrc_image.cpp'. Stop.”
- C语言位运算详解
- C语言位运算详解
- C++和C代码:删除字符串中所有前导空格和所有后导空格,单词之间最多只留一个空格
- C++中值传递,地址传递,引用传递的区别
- 黑马程序员——C语言之结构体