字符串和字符数组没有区别。
char *a; 是指针。
没有这种形式char* a("asdfadf");
char a[8] = "asdfadf"; 和 char *a="asdfadf"; 效果是一样的。
例如:
char *a="asdfadf"; // 声明和初始化
int i;
for (i=0;i<strlen(a);i++) printf("%c",a[i]); // 打出 asdfadf
printf("\n");
printf("%s\n",a); // 打出 asdfadf
printf("%s\n",a+2); // 打出 dfadf
同样:
char a[8]="asdfadf"; // 声明和初始化
int i;
for (i=0;i<strlen(a);i++) printf("%c",a[i]); // 打出 asdfadf
printf("\n");
printf("%s\n",a); // 打出 asdfadf
printf("%s\n",a+2); // 打出 dfadf
追问为什么有时候会提示无法从char* 转换为char[10],或者char[10]转换为char*,在参数传递的时候