gpt4 book ai didi

c++ - 你能解释一下这个程序中 array+5 的用途吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:04:01 25 4
gpt4 key购买 nike

除了 main 函数中的第二行:int* end = array+5; 外,我了解其中的大部分工作原理。那条线是如何工作的?

#inlcude <iostream>
int main()
{
int array[] = {10, 20, 29, 200, 2};

int* end = array+5;
for(int* it = array; it != end; ++it)
{
std::cout << *it << std::endl;
}
}

它应该只打印列表中的每个元素。

最佳答案

it != end;

表示它到达了位置[5],也就是最后一个(4)之后的一个。

int* end = array + 5; 

只是创建一个指向 [5] 位置的变量。

它有效,但更干净和安全的版本是:

for(int i = 0 ; i < 5 ; i++)
{
std::cout << it[i] << std::endl;
}

当然,您可以用 sizeof(array)/sizeof(int) 替换硬编码的 5,或者更好的是,使用 std::array。

std::array arr<int,5> = {10, 20, 29, 200, 2};
for(int i = 0 ; i < arr.size() ; i++)
{
std::cout << arr[i] << std::endl;
}

 std::array arr<int,5> = {10, 20, 29, 200, 2};
for(auto& it : arr)
{
std::cout << it << std::endl;
}

后一种形式与普通原始数组一样快,但更安全。

关于c++ - 你能解释一下这个程序中 array+5 的用途吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56918295/

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