C中的L.elem什么意思
l. elem表示什么? -
l应该是顺序表,elem是顺序表的元素。
SqList 型结构在函数前面已定义,它含有3个成员变量,elem 是int *elem; 也就是指向整型量的指针。所以L.elem 是指针。L.elem=(ElemType*)malloc 等会说。 这是动态分配内存,分配后成员elem 可以当数组使用。if(!L.elem) -- 如果动态分配内存失败,则等会说。具体调用函数InitList_Sq 等会说。
l应该是顺序表,elem是顺序表的元素。
SqList 型结构在函数前面已定义,它含有3个成员变量,elem 是int *elem; 也就是指向整型量的指针。所以L.elem 是指针。L.elem=(ElemType*)malloc 等会说。 这是动态分配内存,分配后成员elem 可以当数组使用。if(!L.elem) -- 如果动态分配内存失败,则等会说。具体调用函数InitList_Sq 等会说。
elem是类L中的一个成员变量:char *elem;L.elem=(char *)malloc(50*sizeof(char));给elem 动态分配50个字符单元,返回char型指针,指向字符单元的首地址。如果动态分配成功,接着你可以把char *elem;看成 char elem[50];在程序中使用。动态分配成功或失败测试法:if ( ! L.elem){ 动态分好了吧!
如果在结构体中elem被定义为了一个数组那么L.elem就是指elem这个数组的首地址也等价于&L.elem[0]而l.elem+1等价于与&L.elem[1]
数据结构删除操作为什么用q=l.elem+l.length-1表示尾元素的位置?这句话...
中,l.elem表示线性表l中存储数据(数组)的基地址(起始地址),l.length是表的长度(数据元素个数),q是指针通过上式计算后指向尾元素和数组的情况一样,例如:int a[10],*p=a;//p指向第一个元素p=a+1;/指向第二个元素则:p=a+10-1;指向最后一个数组元素,即a[9]
typedef struct { int *elem;int length;int listsize;}SqList;结构体类型名为SqList,SqList &L:定义了一个结构体类型SqList的变量L L.elem:这个结构体变量的成员elem,当然还有其他两个成员L.length,L.listsize 不知这样说明清楚否,
L.elem=(ElemType*)malloc(LIST-INIT-SIZE*si都zeof(ElemType)) 这句话...
L的elem成员是这个线性表的首元素的地址。这个表达式的意思就是分配一个长度为LIST-INIT-SIZE个ElemType长度的空间并强制转换为ElemType类型的指针,将该指针的地址赋给L.elem。这样L就是一个已经分配过空间的线性表了,它已经有了一个空的存储空间,可以放LIST-INIT-SIZE个ElemType类型的数据。
L->elem 中L必须是指针,而L.elem中的L一定是普通结构体变量->和.都是引用结构体成员的运算符,前者是通过指针引用,而后者是通过变量引用,
急……急救L.elem=(int *)malloc(LISTSIZE*sizeof(int));是什么意思...
申请LISTSIZE个大小为整型(int)字节的空间,把空间指针给L.elem LISTSIZE*sizeof(int),sizeof(int)是计算int的大小,int型是4个字节。malloc是分配空间的意思,是C语言中特有的,C++一般都用new来申请了。
(elementype *),是强制类型转换,malloc返回NULL类型,它是分配内存的函数第2个*是乘法运算&代表该变量的地址,amp;L代表L的地址,