为什么"char"在结构类型中是一个糟糕的编程实践?

MLS*_*LSC 2 c++ struct

我在c ++编程语言中看到一些建议,比如"不要在struct类型中使用char",

struct Student{
    int stdnum, FieldCode, age;
    double average, marks, res[NumOfCourses];
    char Fname[20], Lname[20], cmp[20];
};
Run Code Online (Sandbox Code Playgroud)

最好使用:

struct Student{
    int stdnum, FieldCode, age;
    double average, marks, res[NumOfCourses];
    string Fname, Lname, cmp;
};
Run Code Online (Sandbox Code Playgroud)

关于此事,欢迎任何其他建议

先感谢您

unw*_*ind 8

因为使用C级原始字符数组的字符串处理很难正确,容易失败,并且当它失败时,它可能会失败相当可怕.

使用更高级别的字符串数据类型,您的代码变得更容易编写,更可能是正确的.获得更短的代码通常也更容易,因为string数据类型为您做了很多工作,否则您必须自己做.

原始问题用标签标记,但当然string构造,所以这个答案不适用于C.在C中,你可以选择使用一些字符串库(glib的GString很好)来获得类似的好处,但是当然,你永远不会像C++那样重载运算符.