void initSqlist(Sqlist *L){
L->elem=(int *)malloc(MaxSize*sizeof(ElemType));
if(!L->elem) exit(0);
L->length=0;
L->listsize= MaxSize;
}
我主要是不知道!L->elem是什么意思
追答L->elem=(int *)malloc(MaxSize*sizeof(ElemType));申请向空间,但是这个操作不一定能成,如果没有成功就返回NULL,如果是这个样子,那么终止程序
追问那一般感叹号写在变量的前面是什么意思呢
追答NULL一般是0,这个数也表示假,任何不为零的数表示真,感叹号表示取反。也就是
if(!L->elem) exit(0); 如果“不是NULL”是假的(也就是是NULL),退出
L->length=0; 处理数据
L->listsize= MaxSize;处理数据
和
if(L->elem) 如果不是NULL,处理数据
{ L->length=0;
L->listsize= MaxSize;
}
else exit(0);否则退出
等效
if(a)和if(a!=0)是一样的,和if(!a)以及if(a==0)等效
最要别写这样的代码,因为不同的编译系统对NULL的解释不同,NULL未必就是0