【发布时间】:2022-01-04 13:08:29
【问题描述】:
如果我有一个二维数组
int A[3][2] = { {3,4}, {5,6}, {0,-5} }
如果我尝试打印元素 A[1] 会得到什么结果?会是垃圾价值吗?还是会变成逻辑错误?
【问题讨论】:
-
技术上 C 没有多维数组。
A所拥有的是int的数组 数组。所以A[1]是一个数组(包含两个int值)。如果编译器会抱怨或者是逻辑错误取决于上下文,那么您对数组的处理方式。 -
所以如果我尝试打印 A[1] 的值,结果会是什么?垃圾?
-
@Someprogrammerdude,从技术上讲,C 没有负数,只有 一元减号 后跟数字文字
-
@TerryTan,这取决于您如何尝试打印它。有一些方法可以产生完全有效、定义明确的结果,也有一些方法会产生未定义的行为。
-
另请注意,产生未定义行为的程序并不一定意味着它会产生您认为是“垃圾”的输出。
标签: arrays c indexing compiler-errors garbage