main(int argc, char* argv[])
{
const char *name1 = "ddd";
char s[] = "aad";
name1 = s;
printf("%s", name1);
}
为什么输出时写成 *name1 会出错? name1不是一个指针变量吗?
main(int argc, char* argv[])
{
const char *name1 = "ddd";
char s[] = "aad";
name1 = s;
printf("%s", name1);
}
为什么输出时写成 *name1 会出错? name1不是一个指针变量吗?
*name1表示的是name1[0]
name1[0]是一个char类型,不能用%s,而要使用%c,即
main(int argc, char* argv[])
{
const char *name1 = "ddd";
char s[] = "aad";
name1 = s;
printf("%c", *name1);
}
printf("%s", name1); //是输出一串字符串. %s是字符串的输出格式!
而如果写成*name1, 则是输出name1的首元素,也就是name1[ 0 ]这个字符.
因此.写成*name1的话. 输出格式必须是%c.