这是一个非常快速的问题。 为什么允许我这样做:
char* sentence[2] ={"blahblah","trololo"};
int main() {
printf("%s",sentence[0]);
printf("%s",sentence[1]);
return 0;
}
但不是这个?
char* sentence[2];
sentence[0] = "blahblah";
sentence[1] = "trololo";
int main() {
printf("%s",sentence[0]);
printf("%s",sentence[1]);
return 0;
}
最佳答案
你不能做第二部分,因为赋值在函数之外。当您将赋值移动到 main()
(或其他函数)中时,它将有效
char* sentence[2];
int main() {
sentence[0] = "blahblah";
sentence[1] = "trololo";
printf("%s",sentence[0]);
printf("%s",sentence[1]);
return 0;
}
关于char指针数组赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20181526/