2.18:编写代码分别更改指针的值以及指针所指对象的值。
#include<iostream>
int main(int argc, char* argv[])
{
int a = 23, b = 24;
int *p = &a;
std::cout << p << std::endl;
std::cout << *p << std::endl;
p = &b;// 更改指针P的值
*p = 25;//更改指针P指向的对象的值
std::cout << p << std::endl;
std::cout << *p << std::endl;
system("pause");
return 0;
}
2.33:利用本节定义的变量,判断语句的运行结果。
#include<iostream>
int main(int argc, char* argv[])
{
int i = 0, &r = i;
auto a = r;//a为整数
const int ci = i, &cr = ci;
auto b = ci;//b为整数
auto c = cr;//c为整数
auto d = &i;//d为整型指针
auto e = &ci;//e为指向整型常量的指针
auto &g = ci;//g为整型常量引用
a = 42; b = 42; c = 42;
std::cout << a << " " << b << " " << c << std::endl;
//d = 42;//不能将“int”类型的值分配给“int *”类型的实体
//e = 42;//不能将“int”类型的值分配给“int *”类型的实体
//g = 42;//表达式必须是可修改的左值
system("pause");
return 0;
}