c语言 关于全局变量的问题

int i;

i=1;
void main()
{}
这是合理的,但若是:
struct book{

int number;
char name[31];}
struct book *p,*head;
head=NULL;
p=(struct book*)(malloc(sizeof(struct book)));
void main()
{}
他就报错,怎么解决

第1个回答  2012-08-09
int i;

i=1; //这个也是不行的,全局变量只能在定义的时候初始化,不能在全局区域赋值
void main()
{}

下面的也一样:

struct book{
int number;
char name[31];}

struct book* head=NULL;
struct book* p=(struct book*)(malloc(sizeof(struct book)));
void main()
{}追问

i=1;可以

第2个回答  2012-08-09
head=NULL;
p=(struct book*)(malloc(sizeof(struct book)));
这两句已经是执行语句而不是定义变量的语句了,把他放在main函数里就对了追问

哦,知道了,谢谢

本回答被提问者采纳
相似回答