C语言中, -> 是指针操作符, 点是结构操作符。
如果 L 是一个结构实例的指针,要用 -> 访问结构里的变量,而不能用点。
如果L 是一个结构的实例而非指针,只能用点而不能用 -> 。
L->length++与++(L.length)区别在于自增发生在使用前还是使用后。
比如 L->length等于5,a=L->length++, 则a=5,L->length自增为6;
而b=++(L.length),则b=6,L->length也为6。
&L表示L的地址(或者说指针),&是取地址运算,而*则与&相反,是取地址处的数据,所以*&L=L。
小结:
L->length++:此语句运行后将L的长度加1;
++(L.length):此语句运行前将L的长度加1;
*&L:先取L的地址,然后指向这个地址;
&L:L的地址。