嗨,我正在學習C++入門,並有一個簡單的問題。請幫助我。所以我知道「int * p =(* q)[10]」其中p是指向10數組的指針。問題是,在函數定義中:「void print(int(* q) [10])「這個指針是一個參數。我怎麼能得到那個指針的副本。那會是「int * p = q」嗎?獲取指向C++數組的指針的副本
我在技術上不知道如何在C++中測試我的正確性。
由於
嗨,我正在學習C++入門,並有一個簡單的問題。請幫助我。所以我知道「int * p =(* q)[10]」其中p是指向10數組的指針。問題是,在函數定義中:「void print(int(* q) [10])「這個指針是一個參數。我怎麼能得到那個指針的副本。那會是「int * p = q」嗎?獲取指向C++數組的指針的副本
我在技術上不知道如何在C++中測試我的正確性。
由於
int (*q)[10]
聲明q
作爲指針爲10個int
列數組。只有數組衰減指向其基礎類型的指針,但指向數組的指針不會衰減指向基礎類型的指針,因此嘗試int* p = q;
將導致編譯錯誤。你需要的是
int (*p)[10] = q; // copies the pointer q to p
爲什麼不使用int * p = new int [10]'爲初始化數組和10個int值? –
@DanilProkhorenko因爲新不好。 –
@NeilKirk爲什麼?或者你是什麼意思? –