2010-01-21 78 views
3
int startingPoint[2]={i,j}; 

我在閱讀在線代碼後得到了這個,這是正確的嗎?意思是如果i和j的值在運行之前可以在運行前更改,是否會用正確的值初始化數組?請解釋。C:這種類型的初始化是否正確?

回答

8

這適用於C99,但不適用於C89。

+1

另請參閱http://stackoverflow.com/questions/160960/error-initializer-element-is-not-computable-at-load-time。 – 2010-01-21 08:23:30

1

int startingPoint [2] = {i,j};
我在閱讀在線代碼後得到了這個,這是正確的嗎?

是的,這是一個正確的C代碼(將在所有現代C編譯器上工作)。但是,這不會在C89編譯器上工作。

意思是如果i和j的值在運行之前可以在此語句之前更改,是否會使用正確的值初始化數組?

是的!

scanf("%d %d",i,j); 
/* some code */ 

int abc[]={i,j};