C++ 练习 2.18
题目要求:
- 编写代码分别更改指针的值以及指针所指对象的值
/*
* 题目要求:
* 编写代码分别更改指针的值以及指针所指对象的值
*/
#include<iostream>
int main()
{
// 创建两个变量并分别初始化为 42, 55
int i { 42 }, j { 55 };
// 创建指向存放变量 i 的存储空间的地址值
int *p = &i ;
// 输出 由符号 * 得到 p 所指的对象 i ,即输出 i 的值
std::cout << *p << " " << p << std::endl; // 42 存放变量 i 的存储空间的地址值
// 更改指针 p 使其指向 存放变量 j 的存储空间的地址值
p = &j ;
// 输出 由符号 * 得到 p 所指的对象 j ,即输出 j 的值
std::cout << *p << " " << p << std::endl; // 55 存放变量 j 的存储空间的地址值
// 使用 * 符号给指针赋值,实际上也就是给指针所指向的内存空间里所存放的值 j 赋值
*p = 20; // 等同于 j = 20;
// 输出 由符号 * 得到 p 所指的对象 j ,即输出 j 的值
std::cout << *p << " " << p << std::endl; // 20 存放变量 j 的存储空间的地址值( 同上)
// 直接更改变量 j 的值然后输出
j = 30;
std::cout << *p << " " << p << std::endl; // 30 存放变量 j 的存储空间的地址值( 同上)
return 0;
}
注意,更改变量值后,地址值并不会改变。