C++Primer第五版 2.5.2节练习

练习2.33:利用本节定义的变量,判断下列语句的运行结果。

练习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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值