结构体在函数中传递问题
#include <stdio.h>#define MAX 10
typedef struct{
int data;
int length;
}SqList;
void Init(SqList *L)
{
(*L)->length=0;//编译不通过,为什么?麻烦大神解释下 (正确的:L->length=0)
}
int main()
{
SqList L;
Init(&L);
return 0;
} L->length = 0相当于(*L).length = 0
如果你(*L)->length = 0;的话 那就相当于(**L).length = 0就报错了 由于 L 是指向结构体的指针,所以,访问结构体成员 lengtrh
(*L) . length=0 ;
L -> length = 0 ;
以上两种写法都是正确的。这个知识近乎于规定,没有什么道理好讲。 本身就是指针,还做解引用干嘛,不过推荐用&,阅读方便 2736946915 发表于 2022-2-16 23:25
本身就是指针,还做解引用干嘛,不过推荐用&,阅读方便
c语言没有引用,c++才有
页:
[1]