When initializing an array, C allows you to fill it with values. So
char s[100] = "abcd";
is basically the same as
int s[3] = { 1, 2, 3 };
but it doesn't allow you to do the assignment since s
is an array and not a free pointer. The meaning of
s = "abcd"
is to assign the pointer value of abcd
to s
but you can't change s
since then nothing will be pointing to the array.
This can and does work if s
is a char*
- a pointer that can point to anything.
If you want to copy the string simple use strcpy
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…