这是一个非常快速的问题。 为什么我被允许这样做:
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;
}
答案 0 :(得分:3)
您不允许执行第二部分,因为赋值不在函数中。将作业移动到main()
(或其他功能)时,它将有效
char* sentence[2];
int main() {
sentence[0] = "blahblah";
sentence[1] = "trololo";
printf("%s",sentence[0]);
printf("%s",sentence[1]);
return 0;
}
答案 1 :(得分:0)
为什么我可以这样做:
char* sentence[2] ={"blahblah","trololo"};
全局变量允许初始化。
但不是吗?:
陈述
sentence[0] = "blahblah";
sentence[1] = "trololo";
在函数(main()
)之外没有意义。将它们移到函数内部就可以了。
答案 2 :(得分:-3)
抱歉,我没有以正确的方式阅读问题而且我没有看到函数main()
代码每次都在函数内部工作。功能必须被调用! main由系统调用。所以这段代码是不可能实现的。
你可以从函数中推出全局变量(例如costant)或struct。