报错语句:
ElemType *pos = &(L.elem + i - 1); /*pos指向L表中的i处*/
下面类似表达不报错:
*e = *(L.elem + i - 1);
令
ElemType *
b = L.elem + i - 1,则不报错
究其原因,是因为
&符号必须作用于一个左值,而
elem+i-1为一个表达式,不是合法的左值。
关于左值:
在 c 中,左值既能够出现在等号左边也能出现在等号右边,右值则是只能出现在等号右边。左值必须是变量,且只能有一个变量。
