[英]Why is there a nested pointer inside a C struct definition?
我正在通过学习C The Hard Way来努力,并且正在努力去理解练习16中的内容:结构和指针。
struct Person *Person_create(char *name, int age, int height, int weight)
{
struct Person *who = malloc(sizeof(struct Person));
assert(who != NULL);
who->name = strdup(name);
who->age = age;
who->height = height;
who->weight = weight;
return who;
}
我理解struct Person将一个指针(* person_create)返回到struct的开头。 但是为什么有人第二个结构定义立即嵌套在里面? 指着谁?
有人可以为我阐明这一点。 或者指出我在C中更好地解释结构定义。
我理解
struct Person
返回一个指针(*person_create
)
等等,这不是你的想法,或者至少你不这么说......
这里, person_create()
是一个函数 ,它返回一个指向struct Person
的指针。 这不是 struct Person
的定义。
现在,就是说,进入你的实际排队, struct Person *who
没有定义struct Person
,而是定义了一个变量who
它是一个指向struct Person
的指针。
为了便于理解,请考虑int someRandomVariable = 0
。 它没有定义int
,对吗? 它定义了一个int
类型的变量someRandomVariable
。
该函数返回struct Person *
类型的指针,换句话说,指向struct Person
的指针。
特别是在这里,你将返回的指针被命名为who
,你可以从声明struct Person * who = ...
理解。 因此,你需要为变量分配内存who
,你将填补,并返回一个指针。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.