c++ - 为什么这样的迭代器是合法的?

标签 c++ arrays c++11

这是代码

#include <stdio.h>

int a[] = {1, 2, 3, 4, 5};

int main()
{
    for (int i : a)
        printf("%d\n", i);
    return 0;
}

在我看来,for (int i : a) 仅在 a 是整数 vector 时有效。但是在上面的代码中,a 是一个整数数组,很像一个指向整数的指针。为什么会这样?

最佳答案

数组“很像一个指针”。数组可以衰减为指针,但在非衰减上下文中,它仍然是一个已知大小的数组。

关于c++ - 为什么这样的迭代器是合法的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35809460/

相关文章:

java - 如何避免在 Java 和 native C++ 代码之间复制数据

c++ - 有助于学习 C++ 的酷 API?

arrays - 检查值是否在数组中作为字典值?

C:让用户一个字符一个字符地填充一个char数组。然后打印出来

c++ - 如何定义自定义跨平台 size_t 类型?

c++ - std::bind 如何增加传递给函数的参数数量?

c++ - 管理 OpenGL 状态机的策略

c++ - 如何使用单一职责原则

c++ - 数组的地址

c++ - 声明为私有(private)成员的 Mutex 会产生错误,但当它是全局成员时不会