鱼C论坛

 找回密码
 立即注册
查看: 874|回复: 4

[已解决]结构体在函数中传递问题

[复制链接]
发表于 2022-2-16 19:21:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>

#define MAX 10
typedef struct{
        int data[MAX];
        int length;
}SqList;

void Init(SqList *L)
{
        (*L)->length=0;//编译不通过,为什么?麻烦大神解释下 (正确的:L->length=0)
       
}
int main()
{
        SqList L;
        Init(&L);
        return 0;
       
}
最佳答案
2022-2-16 19:41:01
L->length = 0
相当于
(*L).length = 0
如果你
(*L)->length = 0;
的话 那就相当于
(**L).length = 0
就报错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-16 19:41:01 | 显示全部楼层    本楼为最佳答案   
L->length = 0
相当于
(*L).length = 0
如果你
(*L)->length = 0;
的话 那就相当于
(**L).length = 0
就报错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2022-2-16 22:47:11 | 显示全部楼层
    由于 L 是指向结构体的指针,所以,访问结构体成员 lengtrh
    (*L) . length=0 ;
    L -> length = 0 ;
    以上两种写法都是正确的。这个知识近乎于规定,没有什么道理好讲。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-16 23:25:13 | 显示全部楼层
本身就是指针,还做解引用干嘛,不过推荐用&,阅读方便
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-17 12:39:08 | 显示全部楼层
2736946915 发表于 2022-2-16 23:25
本身就是指针,还做解引用干嘛,不过推荐用&,阅读方便

c语言没有引用,c++才有
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 12:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表