首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我的数组初始化不能编译?

为什么我的数组初始化不能编译?
EN

Stack Overflow用户
提问于 2013-05-03 23:07:43
回答 3查看 119关注 0票数 2

当我在MSVS中运行下面的代码时,编译器给出

“错误1错误C2059:语法错误:'{‘

我确信我声明和初始化的二维数组是正确的。语法错误在哪里?

代码语言:javascript
复制
#include <stdio.h>
#define STUDENTS 3
#define EXAM 4
void printArray(int array[][EXAM]);

int main(void){

int array[STUDENTS][EXAM];
array={ { 77, 68, 86, 73 },{ 96, 87, 89, 78 },{ 70, 90, 86, 81 } };
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-03 23:08:44

您必须在单个语句中声明和初始化该数组。

代码语言:javascript
复制
int array[STUDENTS][EXAM]={ { 77, 68, 86, 73 },{ 96, 87, 89, 78 },{ 70, 90, 86, 81 } };

代码语言:javascript
复制
array[0][0] = 77;
...
票数 4
EN

Stack Overflow用户

发布于 2013-05-03 23:25:20

在C99中,您可以使用复合文字:

代码语言:javascript
复制
int (*array)[EXAM];
array = (int[STUDENTS][EXAM]){ { 77, 68, 86, 73 },{ 96, 87, 89, 78 },{ 70, 90, 86, 81 } };

编辑:正如Graham所说:在这里,您不是在初始化一个预先声明的数组;您是在初始化一个新的数组,然后将其地址分配给一个指针

票数 3
EN

Stack Overflow用户

发布于 2013-05-03 23:10:23

array={ { 77, 68, 86, 73 ... };不是有效语法。

int myArray[5] = { 0 };

有关阵列初始化的详细信息,请查看此question

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16362111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档