2.5.2 auto类型说明符

在这里插入图片描述
练习2.33 和练习2.34

#include <iostream>
using namespace std;

int main() {
	int i = 0, & r = i;
	auto a = r; // a是一个整数
	cout << "a = " << a << endl;
	const int ci = i, & cr = ci;
	auto b = ci; // b是一个整数
	cout << "b = " << a << endl;
	auto c = cr; // c是一个整数
	cout << "c = " << a << endl;
	auto d = &i; // d是一个整型指针
	auto e = &ci; //e是一个指向整数常量的指针
	auto &g = ci; //g是一个整型常量的引用,绑定到ci
	//auto& h = 42; //错误,不能为非常量引用绑定字面值
	cout << "g = " << a << endl;
	
	const auto& j = 42; //正确,可以为常量引用绑定字面值
	auto k = ci, & l = i; //k是整数,l是整型引用
	auto& m = ci, * p = &ci; //m是对整型常量的引用,p是指向整型常量的指针
	a = 42; //正确
	cout << "a = " << a << endl;
	b = 42; //正确
	cout << "b = " << a << endl;
	c = 42; //正确
	cout << "c = " << a << endl;
	//d = 42; //不正确,不能将int类型的值分配到int *类型的实体
	//e = 42; //不正确,不能将int类型的值分配到const int *类型的实体
	//g = 42; //不正确,整型常量不可修改,左边错误

}
const int i = 42; //i是整型常量
auto j = i; //j是整数,顶层const被忽略
const auto &k = i; //k已经绑定const int了,第一个const没啥必要
auto *p = &i; //p是一个指向整型常量的指针
const auto j2 = i, &k2 = i; // j2是一个整型常量, k2本身就是const int了
#include <iostream>
using namespace std;

int main() {
	const int i = 42; //i是整型常量
	auto j = i; //j是整数,顶层const被忽略
	cout << "j = " << j << endl;
	j = 4200; //j的值可以被改变
	cout << "j = " << j << endl; 
}

在这里插入图片描述
在这里插入图片描述

#include <iostream>
using namespace std;

int main() {
	const int i = 42; //i是整型常量
	auto* p = &i; //p是一个指向整型常量的指针
	cout << "p = " << p << endl; //输出对象地址
	cout << "*p = " << *p << endl; //输出对象的值
	const int j = 20;
	p = &j; //更改指向的对象,证明不是常量指针
	cout << "p = " << p << endl; //输出对象地址
	cout << "*p = " << *p << endl; //输出对象的值
	// *p = 40; 报错,不可通过指针更改常量对象的值

}

在这里插入图片描述

#include <iostream>
using namespace std;

int main() {
	const int i = 42; //i是整型常量
	const auto j2 = i, & k2 = i;  j2是一个整型常量, k2本身就是const int了
	//系统未报错,正确,均为整型常量
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值