定义时char *s和char s[ ]有什么区别

来源:百度知道 编辑:UC知道 时间:2024/05/25 19:47:37

定义char*时不需要赋初值,char[]需要
char*是一个变量,可以再用其他char* char[]赋值。而char[]是指针常量,不能再写char s[] = {fa}; s = ss;
这是错的。

char*="dafdsf" 后面会自动加上'\0',char s[] = {2,2,3,4}最后是没有'\0'的,因此输出s[]会出问题,用strlen(s)也会出问题,应该这么定义:char s[]={2,1,3,'\0'};
基本上就这些吧

char *s 定义一个指向字符指针s
char s[ ] 定义一个名为s的字符数组

char *s是指针,未分配空间
char s[ ]是数组,写大小分配空间

指针不占空间,在使用前必须对他进行初始化,但后面的会分配空间

char s[]要接着初始化
char *s不用