gpt4 book ai didi

c++ - for(auto& x :A) and for(auto &x:A) in C++ 和有什么区别

转载 作者:行者123 更新时间:2023-12-02 10:33:35 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What's the semantically accurate position for the ampersand in C++ references

(3 个回答)


2年前关闭。




我有一个 int 类型数组,我想使用基于范围的 for 循环来引用它的值,但我找不到使用 for(auto& x:A) 和 for(auto&x:A) 之间的区别。两者在我的编译器中都有效并给出相同的输出。有什么区别吗?

这是我正在使用的代码和输出:

#include "pch.h"
#include <iostream>
using namespace std;

int main()
{
int A[10] = {0,1,2,3,4,5,6,7,8,9};

//Using any of the two following lines, there seems to be no diference in the output.
//for (auto& x : A) x=1;
//for (auto &x : A) x=1;

for (auto x : A) cout << x << " ";
}

输出是: 1 1 1 1 1 1 1 1 1 1

最佳答案

but I can't find the difference between using for(auto& x:A) and for(auto &x:A)



没有区别。

与指针类型相同: int* pint *p是一回事。

两种风格都是正确的。但是,请参阅这表明 & 可能更好。和 *更接近变量名(即更喜欢后一种风格):

https://www.quora.com/Where-should-I-put-the-asterisk-for-pointers-in-C++-Is-it-int -ptr-int--ptr-or-int-*ptr

In my experience with many clients, large and small, and several different coding standards, the overwhelming majority attach the asterisk to the variable name (i.e., int *ptr)

关于c++ - for(auto& x :A) and for(auto &x:A) in C++ 和有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61299117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com