{
char* p="hefhiefu"
char a[10]
strcpy(a,p)
printf("%s",a)
return 0
}
你这种错误就是不能从char* 赋值给char[64],这是很基础的指针问题,数组名代表数组的首地址是不允许修改的,指针可以修改,字符串数组复制可以一个字符一个字符赋值,也可以用memcpy()函数赋值,当然如果传入的是字符串的话还可以使用strcpy()函数数组声明的时候就要指定大小的可以用memcpy,对于字符串,也可以用strcpy或strncpy(需要包含string.h)
比如:
char
*p="abc"
char
a[10]
memcpy(a,p,sizeof(a))
或者
strcpy(a,p)
或者
strncpy(a,p,sizeof(a))/*
比上面的strcpy安全
*/
PS:关于sizeof,取数组的时候是数组的大小,指针的话,32位机器,会是4,所以字符串指针不用sizeof取长度,用strlen()