hãy chịu với tôi, tôi m từ ngôn ngữ và người mới khác để c và học nó từ http://c.learncodethehardway.org/book/learn-c-the-hard-way.htmlxác định một hàm trả về con trỏ struct
struct Person {
char *name;
int age;
int height;
int weight;
};
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;
}
Tôi hiểu chức năng Person_create thứ hai trả về một con trỏ của struct Person. Tôi không hiểu được (có thể là do im từ ngôn ngữ khác, erlang, ruby), tại sao nó định nghĩa nó như
struct Person *Person_create(char *name, int age, int height, int weight)
không
và có cách khác để xác định một hàm để trả về một cấu trúc?
xin lỗi nếu câu hỏi này quá cơ bản.
Hiểu sự khác biệt giữa 'Person *' và 'Person'. 'Person *' là một con trỏ tới đối tượng trong khi 'Person' là chính đối tượng. Cả hai đều là các kiểu khác nhau như cách 'int *' và 'int' khác nhau. – Mahesh
vì vậy, 'struct Person * Person_create' giống với' struct Person * Person_create' và 'struct Person * Person_create'? '*' vị trí không quan trọng? – allenhwkim
có, khoảng trống xung quanh '*' không quan trọng ở đây. –