c - c中以下代码的问题是什么
问题描述
#include <stdio.h>
int main(){
int a[1] = {1};
int b = 6;
printf("%d\n", a[-1]);
printf("%d\n", b);
//printf("%d\n", (a-1 == &b));
return 0;
}
我写了上面的代码,发现在使用gcc或mingw编译时它不能正常工作,但是当我取消第8行的注释时,一切都很好。谁能帮我解释一下代码?
解决方案
a[-1]
是未定义的内存空间。
推荐阅读
- java - Querydsl 不创建 Qclasses
- c# - join 子句中的表达式之一的类型不正确。对“加入”的调用中的类型推断失败。-具有多个条件的 Linq JOIN
- java - 如何识别对象是哪种类型的继承类?JAVA
- docker - Docker redis 未授权访问
- asp.net-mvc - 谁能帮我合并我的工作流文件?:)
- php - 即使我的状况得到识别,我的标题位置也不起作用?
- sql - 为什么 SSMS 版本 18.8 在 NVarchar 列中存储问号字符而不是中文字符?
- r - 有没有一种有效的方法来计算预聚合数据 (R) 的百分位数?
- android - 如何使用模型类解析 JSONArray 中的多个 JSONObjects
- google-cloud-platform - 如何向 Google 工作区注册设备以使其无需任何身份验证即可访问日历