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