主函数外部的数组指针

时间:2017-04-03 05:48:03

标签: c++ arrays pointers compilation declaration

这是我的另一个初学者 - 否则问题:放线时

double w[1];
double *l;
l = w;

进入main()函数,编译时一切运行良好,但是,当它放在main()之前(作为声明的变量)时,则错误

  

在','代币之前预期为“;”或“=

出现在最后一行。

此外,将前两个放在main()之前,只有l = w;放入main()也可以。为什么会这样?它与编译/运行时有关吗?如果之前已经声明了值,我可以不在main()之外分配值吗?如果是这样,为什么?

2 个答案:

答案 0 :(得分:3)

你不能在C ++中的函数之外拥有独立的表达式。

您可以通过将表达式移动到初始值设定项l

来解决此问题
double w[1];
double *l = w;

答案 1 :(得分:0)

为什么它可以工作,声明可以在函数外部进行 - 但是,通过这样做,您将它声明为全局变量。

C ++可以在声明变量后对其进行初始化,但是,它不会运行除此之外的任何其他变量。所以在这种情况下,表达式

l = w;

不会运行,因为它不在方法内。