在 C++ 中错误地声明数组,如数组 [1-00],但代码仍然有效,输出不正确?
Declaring array in C++ like array[1-00] by mistake but still code works, output is incorrect?
当我错误地将数组声明为数组[1-00] 时,我没有得到正确的答案。但是当我将它更改为像 array[100] 这样的正常声明时,我清除了所有测试用例。
任何人都可以为此类问题提供任何解释吗?
请。
您声明了大小为 1 的数组。
int arr[100]; //100 elements
int arr2[1]; //1 element
int arr3[1-00] // 1 - 0 = 1 element
访问数组外的元素是未定义的行为,这意味着编译器可以为所欲为。
阅读 this 了解有关未定义行为的更多信息。
当我错误地将数组声明为数组[1-00] 时,我没有得到正确的答案。但是当我将它更改为像 array[100] 这样的正常声明时,我清除了所有测试用例。 任何人都可以为此类问题提供任何解释吗? 请。
您声明了大小为 1 的数组。
int arr[100]; //100 elements
int arr2[1]; //1 element
int arr3[1-00] // 1 - 0 = 1 element
访问数组外的元素是未定义的行为,这意味着编译器可以为所欲为。 阅读 this 了解有关未定义行为的更多信息。