【发布时间】:2021-12-14 07:53:01
【问题描述】:
我用 C 编写了以下代码
int main(){
int a = {1, 2, 3};
}
似乎分配的变量,在本例中为 a,总是取第一个数组元素的值。 现在我想知道是不是其他数组元素被丢弃了,或者a后写入内存,从而导致缓冲区溢出。
【问题讨论】:
-
Build with warnings,编译不会这样。
-
您应该查看本教程:C-Array 在数组中,如果您想访问其他单元格,您必须指定索引,例如
a[0] = 1 or a[1] = 2数组总是从 0 开始 -
您必须使用有效的 C 编译器编译代码。 What compiler options are recommended for beginners learning C?
-
这样的代码的目的是什么?
-
Re“第一个数组元素的值”:
{1, 2, 3}不是数组。它是大括号内的值列表。该列表可用于初始化数组,但它不是数组。没有书也没有老师告诉你这是一个数组。
标签: arrays c initialization scalar braced-init-list