rzjy123 2021-12-15 00:10 采纳率: 85.7%
浏览 74
已结题

例如, 对于基本类型, cin 使用引用, 因此可以使用cin>>n, 而不是cin >> &n。这话什么意思

c++pp中的一段话,完全理解不了,这书里很多话都理解不了,没头没脑的,英文版也看不出来什么意思

对于修改调用函数中数据的函数。

如果数据对象是内置数据类型,则使用指针。如果看到诸如fixit(&x)这样的代码(其中x是int),则很明显,改函数修改x。

如果数据对象是数组,则只能使用指针。

如果数据对象是结构,则使用引用或指针。

如果数据对象是类对象,则使用引用

当然,这只是一些指导原则,很可能有充分的理由作出其他选择。例如,对于基本类型,cin使用引用,因此可以使用cin>>n, 而不是cin >> &n

  • 写回答

3条回答 默认 最新

  • 关注

    也就是说
    int n;//(1)
    cin >> n; //(2)
    这个代码中,>>操作符的操作对象n是一个引用,所以,在(2)给n赋值以后,(1)中的n的值也随之改变。(这里涉及到>>运算符的重载,输入输出流的>>运算符 函数是引用,大体上类似于 fstream operater >> (int &n) { } )


    在C++里,如果需要通过函数来改变变量的值,可以使用引用,也可以使用指针。这就是你的正文里那些话的意思。以swap函数为例,
    使用引用来实现交换:

    oid swap(int &a,int &b)
    {
        int t = a;
        a=b;
        b = t;
    }
    
    

    使用指针来实现交换:

    void swap(int *a,int* b)
    {
        int t;
        t = *a;
        *a = *b;
        *b = t;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月23日
  • 已采纳回答 12月15日
  • 创建了问题 12月15日

悬赏问题

  • ¥15 被蓝屏搞吐了,有偿求帮解答,Ai回复直接拉黑
  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角