结构之间的差异

时间:2017-10-02 20:34:12

标签: c struct malloc

typedef struct student{        
char *fName;        
char *lName;        
int pid;
}student;

vs

typedef struct student{        
char fName;        
char lName;        
int pid;
}student;

这两种结构的使用有何不同?就像为什么我会使用一个而不是另一个?

2 个答案:

答案 0 :(得分:4)

第一个结构包含一个指向fNamelName字符的指针,这些字符通常存储为字符数组(可用于表示单个字符)

第二个只存储一个char,这意味着您无法输入学生姓名

答案 1 :(得分:0)

非常简单。 char fname只能存储一个字符,而char *fname是一个指针,指向string而不是单独的character

所以,如果你想存储整个名字,那么你应该使用第一种类型的结构,如果你只想存储人物姓名的首字母,那么你应该使用第二种结构。

注意:char *fname只能在使用malloc()calloc()

分配内存后存储字符串