int64 @ 2021-08-24 21:53:15
下面这段代码:
#include<iostream>
using namespace std;
int a[4];
int main() {
cin >> a[0] >> a[1];
a[10] = a[0] + a[1];
a[2] = a[10];
cout << a[2] << endl;
return 0;
}
明显 a[10] 超过了 a 定义的长度 4,但是为何没有影响程序并且 AC 了此题?
by wsyhb @ 2021-08-24 22:14:24
说句闲话,对于代码比较长的题,若是在哪个犄角旮旯越界了,真的调死人……
by q779 @ 2021-08-24 22:18:04
@wsyhb 同感(
我有次提交的代码,数组越界了,本地过不了样例,但是提交AC了 记录在这
by 王熙文 @ 2021-08-24 22:20:08
有点像这道题
by WYXkk @ 2021-08-24 22:20:36
@int64 a[10]
其实就是 *(a+10)
,某种意义上是 a
的第
因为 u[v]
(在通常情况下)就是 `(u+v),所以
10[a]` 这种东西也是可以写的……*
by xuan_gong_dong @ 2021-09-12 19:07:17
让我们回顾一下什么是数组。
数组就是不连续的空间。ok
by UID640538 @ 2022-02-22 19:32:58
@sb_yyds
by Super_Supper @ 2022-02-23 20:02:16
@xuan_gong_dong
等等,不连续的?
by xuan_gong_dong @ 2022-04-16 11:25:54
@sb_yyds 是的呢
by Super_Supper @ 2022-04-16 11:43:00
@xuan_gong_dong
那你怎么做到O(1)访问?
by xuan_gong_dong @ 2022-04-16 11:49:59
@sb_yyds 这个问题你得问c语言的创屎人