求帮忙看一句C代码,怎么理解这句 (*c).x=c1; c ->y=c2;

2025-03-07 11:16:23
推荐回答(3个)
回答1:

comp是一个类或结构体 所以*c就是一个结构体变量名,给结构体变量中的元素赋值或操作,就是用结构体变量名.元素这种形式
而c是一个结构体指针,对于结构体指针中的元素赋值或操作要用到->符号。其实这2句实现的效果是类似的,一个给*c中的x赋值,一个给*c中的y赋值,只是使用方法不一样 这个是教学代码吧?目的是让你学会区分这2个的不同

回答2:

comp应该是定义的一个struct结构体类型吧?
形参*c指向了传递过来的实参
要引用实参中的成员x和y部分 就得使用结构体成员引用运算符 . 或者 ->
变量的时候用 . ,*c相当于直接引用变量 所以(*c).x
直接用指针引用用 -> , 所以 c->y

回答3:

(*c).x=c1; ==》等价于c ->x=c1; 因为c是指针,(*c)就能取地址里面的结构体,(*c).x就是取结构体成员
c ->y=c2;