引用、指针和只读
题目描述
补全必要的代码片段,使得输出符合要求。
关于输入
一行,两个整数n
和m
,保证涉及到的运算结果在int
范围内。
关于输出
一行,三个整数,分别为2n
,2
和m+1
。
核心技巧
以下的只读引用和指针具有不同的语义,本题旨在帮助大家进行区分。
const int& r
:只读引用,不可修改引用的内容,本身也不可变const int* v1
:const 修饰int
, 不能通过该指针修改指向的内容,但是指针变量v1
本身可变int* const v2
:const 修饰指针变量v2
,可以通过该变量修改指向的内容,但指针变量本身是只读的
参考答案
#include <iostream>
using std::cin, std::cout, std::endl;
int n;
int m;
const int x1 = 1;
const int x2 = 2;
const int& r{n};
const int* v1 = &x1;
int* const v2 = &m;
int main(){
cin >> n >> m;
n = 2 * n;
v1 = &x2;
*v2 = m + 1;
//
cout << r << " " << (*v1) << " " << (*v2) << endl;
}