#include<stdio.h>
int main(void)
{
char arr[100] = "123456";
arr[100] = "ubdyu" ;//(不能直接赋值)
return 0;
}
为什么字符数组不能够等号赋值字符串,而初始化可以?
初始化和赋值有啥区别吗?
#include<stdio.h>
int main(void)
{
char arr[100] = "123456";
arr[100] = "ubdyu" ;//(不能直接赋值)
return 0;
}
为什么字符数组不能够等号赋值字符串,而初始化可以?
初始化和赋值有啥区别吗?
初始化是编译器开辟静态存储空间,然后把数组指向这里。所以可以,后面的不行,否则前面分配的空间白分配了。或者说内存泄漏了。
要赋值,可以写
strcpy(arr, "uvdyu");