与常规 for 循环相比,范围 for 循环提供不同的地址。
如何使用增强的 for 循环?
iArr
地址:011bf7cc
循环地址范围:011bf79c 011bf79c 011bf79c
常规 for 循环地址:011bf7cc 011bf79c 011bf7d4
#include <iostream>
#include "TestingConstructors.h"
#include <Windows.h>
using namespace std;
int main() {
int i, j, *i1, *i2;
i = 1;
j = 3;
i1 = &i;
i2 = &j;
*i1 = 2;
int iArr[3] = { 1,2,3 };
cout << &iArr << endl << endl;
for (int i : iArr)
cout << &i << " ";
cout << endl << endl;
for (int i = 0; i < ARRAYSIZE(iArr); i++)
cout << &iArr[i] << " ";
system("pause");
return 0;
}
不存在这样的事情“增强的 for 循环”。这是一个 ”范围for循环":
for (int i : iArr)
cout << &i << " ";
它给你一个不同的地址,因为int i : iArr
is 创建每个元素的副本iArr
并将其分配给i
.
如果你想refer对于原始元素,您应该使用
for (int& i : iArr)
cout << &i << " ";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)