最近我遇到了这个难题:
int main(){
int arr[7];
int b,c,d,a;
a=4;
printf("%d",arr[?]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
问题是要替换"?" 使用整数使输出为4.我不确定,但我不认为这是以标准方式解决的?(不调用未定义的行为或取决于实现)如果否,那么我对如何知道非常感兴趣?
编辑:这个任务取自这里,我试图解决10,但遗憾的是它不是问题设定者想要的答案.但是,我解决了它使用一些预先测试的实现依赖mumbo-jumbo,但我真的没有解释它是如何真的有用!
这是答案:SPOILER,欢迎您解释
SLa*_*aks 15
在大多数实现中,arr[10](或7)将是4,因为本地将按顺序布局.
但是,这既不是既定的也不是标准的,不能依赖.