引用、指针和只读

题目描述

补全必要的代码片段,使得输出符合要求。

关于输入

一行,两个整数nm,保证涉及到的运算结果在int范围内。

关于输出

一行,三个整数,分别为2n2m+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;
}