几个特别容易混淆的问题,大侠帮忙
小弟刚刚学c语言,在最近code时候遇到几个问题弄了两天都解决不了,实在郁闷,希望大侠帮忙:
#include <stdio.h>
#define DATATYPE1 int
#define MAXSIZE 100
typedef struct
{
DATATYPE1 datas[MAXSIZE];
int last;
}SEQUENLIST;
main()
{
SEQUENLIST squn1;
squn1.datas[MAXSIZE]={0,1,2,3,4};//为什么这样写不可以
}
这段代码中squn1.datas这样赋值为什么不可以啊,我看教科书上面也是这样的啊,我这样赋值后总是会出现如下错误
D:\vc\MSDev98\MyProjects\chapter2\sequenlist.cpp(58) : error C2059: syntax error : '{ '
D:\vc\MSDev98\MyProjects\chapter2\sequenlist.cpp(58) : error C2143: syntax error : missing '; ' before '{ '
D:\vc\MSDev98\MyProjects\chapter2\sequenlist.cpp(58) : error C2143: syntax error : missing '; ' before '} '
D:\vc\MSDev98\MyProjects\chapter2\sequenlist.cpp(76) : warning C4508: 'main ' : function should return a value; 'void ' return type assumed
执行 cl.exe 时出错.
然而我改成squn1.datas[0]=0;这样单个元素单个元素赋值就可以了,同样是赋值为什么一种可以一种不可以啊,希望大侠帮忙
[解决办法]
squn1.datas[MAXSIZE]={0,1,2,3,4};//为什么这样写不可以
对数组用{...}赋值,只有定义时可以,以后赋值时只能一个一个的赋值了。
[解决办法]
初始化时才可以写成int a[6]={0,1,2,3,4};
一般的赋值只能写成a[0]=0,a[1]=1,......