在'{'令牌c程序之前的预期表达式

时间:2012-05-21 09:59:54

标签: c syntax-error

我编写了以下代码我在编译这部分代码时解决了一个难题

#include <stdio.h>
int main ()
{

int a[10],b[10],c[10];
int i,j,k,l;
 a[10]={"21","33","12","19","15","17","11","12","34","10"};
 b[10]={"10","15","9","13","16","21","15","32","29","7"};
 c[10]={"11","8","3","6","1","4","6","20","19","3"};

 l=sizeof(a)/sizeof(a[0]);

for (i=0;i<=l;i++)
 {
 }
}

给我错误

array.c: In function ‘main’:
array.c:7:8: error: expected expression before ‘{’ token
array.c:8:8: error: expected expression before ‘{’ token
array.c:9:8: error: expected expression before ‘{’ token

为什么错误会在这里?

4 个答案:

答案 0 :(得分:7)

您的代码中存在几个问题:

  1. 您应该在声明它们的同一行中初始化数组
  2. 您必须使用数组来初始化它们,而不是使用c-strings数组:
  3. 您实际上尝试将值设置为数组的第11个元素。
  4. 正确的代码行将是:

    int a[10] = {21,33,12,19,15,17,11,12,34,10};
    

答案 1 :(得分:1)

您正在将数组的第11个元素设置为数组。

试试这个:

int a[10] = {21,33,12,19,15,17,11,12,34,10};

答案 2 :(得分:0)

  • 类型不匹配:您正在将字符文字字符串设置为int。这是禁忌。

  • 您正在访问一个超出数组末尾的内容 - 一个经典的逐个错误。

答案 3 :(得分:0)

这是int数组不要'为数字加上引号

c[10]={11,8,3,6,1,4,6,20,19,3};