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 王熙文 @ 2021-08-24 21:56:27
可能是把某个在程序里,但是可能是自动定义的变量的值给改了,就是说 a[10]
和某个变量的地址是一样的,然后之后 a[2]
又赋成了这个变量的值,也就是刚改过的
(纯属口胡)
by PPL_ @ 2021-08-24 21:56:48
@int64 玄学,而且你把 a[1]
改成 a[-1]
也可以过,不知道为什么,同求。
by int64 @ 2021-08-24 21:56:58
吸氧 A 了?
by Super_Supper @ 2021-08-24 21:58:16
@int64
这样也能过,还有什么好说的呢?顺便%%%
#include<iostream>
using namespace std;
int a[0];
int main() {
cin >> a[0] >> a[1];
a[10] = a[0] + a[1];
a[2] = a[10];
cout << a[2] << endl;
return 0;
}
az
by 王熙文 @ 2021-08-24 21:58:37
考虑运行这样的一个程序:
#include <bits/stdc++.h>
using namespace std;
int a[10000],b;
int main(){
a[10000]=100;
cout<<(&a[10000])<<' '<<(&b)<<endl;
cout<<a[10000]<<' '<<b<<endl;
return 0;
}
by MeowScore @ 2021-08-24 21:58:55
@sb_yyds /jk/jk/jk/fad
by Super_Supper @ 2021-08-24 21:58:57
记录。。。
by Jr_Zlw @ 2021-08-24 21:58:59
我试过一种比较玄学的调用,感觉有时候它会像变量溢出一样循环调用
by int64 @ 2021-08-24 21:59:17
@sb_yyds
by 斜揽残箫 @ 2021-08-24 21:59:35
吸氧能 A 就离谱