2
當它被傳遞到功能指針陣列和相關的表達式求值
這意味着在
一種陣列型衰減到指針類型int func(int x[*p])
*p
不應被評價爲聲明等效於int func(int *x)
指針指向數組的指針是否一樣?
下面是代碼
int *p=0;
void func(int (*ptr)[*p]) //A
{
// code
}
int main()
{
int arr[5][5];
func(arr);
}
是*p
在//A
評價的標準保證?
我嘗試過,沒有對g ++ 4.6進行優化。啓用優化後,我不會收到段錯誤。在叮噹中,即使沒有任何優化,代碼也不會給出任何段錯誤。
沒有聲明'void func(int(* ptr)[* p])'和'void func(int * ptr [])'完全一樣嗎? – Bart 2012-02-27 19:52:07
我不知道'void func(int x [RANDOM_STUFF])'是有效的! – 2012-02-27 20:57:54
@OliCharlesworth:這不正確嗎? – 2012-02-28 03:12:37