2011-10-01 47 views
0

可能很簡單的問題,但我總是有點混淆引用和數組作爲參數。以下在C++中有效嗎?也就是說,array[0]在調用function1之後是否具有10的值,如果片段中的所有字符都是?數組條目作爲引用函數參數

void function1(int &data) 
{ 
    data = 10; 
} 

void function2(void) 
{ 
    int array[2]; 

    function1(array[0]); 
} 

感謝您的澄清。

+0

究竟是什麼讓你無法自己測試? –

回答

2

是的,它會的,這是完全有效的代碼。

0

在C++中以下是否有效?

是的。

即,不數組[0]具有值10期函數的調用後,如果片斷comiples在所有?

是。

嘗試編譯,運行和實驗。然後詢問下一個 - 並稍微- 更好的 - 問題。

+0

我其實認爲告訴人們編譯和實驗是錯誤的。 UB的性質在每個實現或月球的不同階段都有不同的運行方式,如果我不知道它的定義是否明確,那麼認爲今天測試它時仍然有效的方法仍然有效,這是一個糟糕的主意行爲。它是否編譯?當然,你可以測試一下。它有效嗎?絕對不是。 – Puppy

+0

@DeadMG:爲什麼告訴人們編譯和實驗是錯誤的?我什麼時候說如果程序編譯並運行良好,那麼它不是UB?另外請注意,除了** TWO YES之外,我還說過**。 – Nawaz

+0

@DeadMG:另外,你說*編譯?當然,你可以測試一下。它有效嗎? **絕對不是**。*絕對不是?你知道它意味着什麼嗎? – Nawaz