首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >汽车和汽车有什么区别?

汽车和汽车有什么区别?
EN

Stack Overflow用户
提问于 2019-08-21 07:06:53
回答 1查看 1.2K关注 0票数 0

这是我的密码。根据打印结果,没有差别,那么&符号在这里播放什么呢?

代码语言:javascript
运行
复制
#include <stdio.h>
#include <iostream>
#include <Windows.h>

int main(void)
{
    std::cout << "Print test data\n" << std::endl;
    int a[5] = { 23,443,16,49,66 };

    for (auto &ii : a)
    {
        std::cout << "auto ii: " << ii << std::endl;
    }

    printf("\n");

    for (auto jj : a)
    {
        std::cout << "auto jj: " << jj << std::endl;
    }
    system("pause");

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-21 07:15:20

Auto,for(auto x : range):此用法将创建范围的每个元素的副本。

auto &,for(auto& x : range):当您想要在范围内修改元素(没有代理类引用处理)时,请使用Auto &。

ii是一个引用,因此在循环体中,如果修改了ii,则a中的相应元素也将被修改。

jj不是一个参考。在每个循环中,它都是对应元素的副本。它的修改不会影响a中相应的元素。因为每个循环都会创建一个副本,它将带来系统开销。

如果希望确保a中的数据不被修改,并且希望提高效率,则可以使用表单const auto & ii : a

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57586221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档