循环的C 范围不同于常规循环
C++ range for loop different than regular for loop
与常规循环相比,循环范围提供了不同的地址。如何将增强型用于循环?
iArr
地址:011bf7cc
循环范围地址:011bf79c 011bf79c 011bf79c
常规循环地址: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;
}
没有"增强循环" 的东西。这是" range-for loop ":
for (int i : iArr)
cout << &i << " ";
它为您提供了不同的地址,因为int i : iArr
是创建iArr
每个元素的副本并将其分配给i
。
如果要参考到原始元素,则应使用
for (int& i : iArr)
cout << &i << " ";
相关文章:
- 如何循环打印顶点结构
- 如何在C++中从两个单独的for循环中添加两个数组
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 正在尝试了解输入验证循环
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- 循环后如何继续阅读
- Ardunio UNO解决了多个重叠的定时器循环
- Eigen如何在容器循环中干净地附加矩阵
- 在某些循环内使用vector.push_back时出现分段错误
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 为什么我的for循环不能正确获取argv
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- while循环中while循环的时间复杂度是多少
- C++中的高效循环缓冲区,它将被传递给C样式数组函数参数
- 为什么在这个代码结束循环中没有得到结束
- 在基于范围的for循环中使用结构化绑定声明
- 循环的C 范围不同于常规循环
- 指向数组的指针在 STL 和常规 for 循环中有所不同
- 在 C++11 段错误中基于范围的 for 循环,但不是常规 for 循环
- 基于范围的 for 循环与常规迭代器 for 循环