“ struct user *”和“ struct user *”有什么区别?

时间:2018-12-04 16:12:56

标签: c pointers struct structure dereference

进行struct user* bobstruct user *bob在语义和技术上有什么区别?

根据some sources,它被称为thing* bobthing** bob,这是有道理的,因为它的类型为struct*(或指向结构的指针)

另一方面,我们也可以执行thing *bobthing **bob

以示例程序为例:

struct user
{
int age;
int *p_age2;
};

int main()
{
struct user bob;
struct user* p_bob = &bob;

我不确定这是纯粹的编码风格问题还是某个地方是否存在细微差别。我很想听听为什么一个或另一个可能更有意义。另一个需要注意的重要事项是,结构标记和结构变量有时可能在它们之前没有类型,所以也许user *会更有意义。

1 个答案:

答案 0 :(得分:3)

  

进行struct user* bobstruct user *bob在语义和技术上有什么区别?

对于编译器,没有一个,尽管后一种语法更清楚,因为行struct user *bob, alice;将bob声明为指向struct user的指针,而alice则声明为struct user