gpt4 book ai didi

c++ - 在数组中倒数。 [-1]

转载 作者:太空宇宙 更新时间:2023-11-04 15:11:34 25 4
gpt4 key购买 nike

当我想改变数组的最后一个元素时,我总是使用 [-1] 作为最后一个元素。

#include <iostream>
using namespace std;
int main(){
int arr[10]{};
arr[0]=10;
arr[-1]=100;
cout<<arr[-1]<<endl;
return 0;
}

然后我的老师说:“C++ 不支持数组的这种行为。我应该对最后一个元素使用 arr[9],而“arr[-1]=100”实际上会在区域第一个元素中存储 1000在数组开始的位置之前。这可能会导致崩溃,因为该值超出了数组的范围。”谁能解释一下为什么?

注意:我是 python 程序员。当我在列表中使用 -1 时。我在 python 中没有问题。 C++ 有不同的条件吗?

最佳答案

你的老师是对的。使用 arr[-1] 访问数组是未定义的行为,这对您的代码来说是不健康的,很糟糕。 C++ 中的 C 样式数组不像 Python 那样具有 -1 功能。

对于 C 样式数组,您确实必须为最后一个元素执行 arr[9]。但是,对于 C++ 样式数组 (std::array),您可以使用 size() - 1rbegin()back( )

关于c++ - 在数组中倒数。 [-1],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57974778/

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