在 C 中声明字符串的更好方法是什么?
Which is the better way to declare string in C?
我是 C 语言的新手,我很好奇在 c 中声明字符串的最佳方式。
示例:
char *name;
//or char name[];
scanf("%s", &name);
printf("Hello %s !", name);
在这种情况下,这两者哪个更好?
char *name;
char name[];
如果你有一个固定长度的字符串。您可以像这样声明一个 char 数组。
char name[64];
scanf("%s", name); // no more than 63 characters, remember the '[=10=]'
printf("Hello %s\n", name);
如果字符串长度是动态的,请使用函数malloc分配特定长度的内存。更重要的是,你应该记得释放之前分配的内存。
char *name;
是一个指针,它指向字符串第一个索引的地址。如果您通过引用操作变量,这主要用于例如(通过引用传递参数)
char name[]
在 C 中不适用,因为您必须初始化数组大小,例如char name[20];
无论哪种方式,语法正确的后者更好。
我是 C 语言的新手,我很好奇在 c 中声明字符串的最佳方式。
示例:
char *name;
//or char name[];
scanf("%s", &name);
printf("Hello %s !", name);
在这种情况下,这两者哪个更好?
char *name;
char name[];
如果你有一个固定长度的字符串。您可以像这样声明一个 char 数组。
char name[64];
scanf("%s", name); // no more than 63 characters, remember the '[=10=]'
printf("Hello %s\n", name);
如果字符串长度是动态的,请使用函数malloc分配特定长度的内存。更重要的是,你应该记得释放之前分配的内存。
char *name;
是一个指针,它指向字符串第一个索引的地址。如果您通过引用操作变量,这主要用于例如(通过引用传递参数)
char name[]
在 C 中不适用,因为您必须初始化数组大小,例如char name[20];
无论哪种方式,语法正确的后者更好。