C陣列傳遞問題,C陣列引數傳遞問題

發布 科技 2024-02-09
8個回答
  1. 匿名使用者2024-02-05

    二維陣列位址 - >行位址 - >列位址(變數位址) - >變數值,或為您摘錄描述。

    將二維陣列定義為:

    int a[4][3]=,4,5,6},6,5,4},3,2,1} 那麼它們是什麼意思呢?分析如圖 1 所示。 讓我們從下標“[.

    從 a[2][0] 表示的元素值開始,a “ 變成 a[2](與 a[2]+0 相同),a[2] 表示元素 a[2][0] 的列位址,這裡元素值通過刪除” 刪除 a[2] 並將其更改為 2,即第 2 行的行位址,在這裡您可以通過刪除“.

    重新分析運算子“*”的“降級”效果。 a2 表示第 2 行的行位址,*(a+2) 表示第 2 行第一列元素的列位址。 **(a2) 表示元素值 a[2][0],其中兩個“*s”使行位址 a+2 連續下降兩級,直到位址含義消失並成為元素值。

  2. 匿名使用者2024-02-04

    老人佔據了應答的位置,並完成了一項任務。 房東並不奇怪。

  3. 匿名使用者2024-02-03

    我想用乙個簡單的sizeof()方法來編寫乙個實用程式庫來獲取陣列的長度,但是我踩到了乙個坑。

    在 main() 函式中,通過直接呼叫分配的陣列獲得的資料是正確的。 但是,如果將陣列作為引數直接傳遞給呼叫的另乙個函式,並獲取此函式中陣列的長度,則程式將僅計算整個陣列的第乙個元素的長度。

    原來,C++中函式引數方法傳輸的陣列資料只包含陣列的第乙個元素,也就是說,在獲取引數的函式的檢視中,引數只有乙個元素,而不是長陣列。

    但是由於資料型別仍然是乙個陣列,因此我們直接通過下標操作陣列沒有問題。

    我們可以通過在引數型別名的末尾新增乙個 “&”int function(string &a)) 來定義乙個函式,我們可以在呼叫函式時使用指標 “*a” (function(*a))。現在我們可以研究函式的定義位置。

    在這個函式中,cout “實際上,這種方法不起作用,因為它不能解決我的上述問題。

    函式定義:function(string &a){}

    函式呼叫:function(*a);

    函式定義:function(string &a){}

    函式呼叫:function(*a);

    傳入乙個陣列(以上兩種方法)並將陣列的長度傳遞給呼叫函式,即陣列的大小會在被呼叫函式之外解決,應該不是問題。

  4. 匿名使用者2024-02-02

    1.函式中陣列的傳遞是以指標的形式進行的,作為實際引數,調製函式只接收陣列的第乙個位址,而陣列的長度往往需要由另乙個實際引數提供(字元陣列除外), 2.如果要將調製函式中定義的陣列傳遞(返回)給呼叫函式,則需要動態申請(新)記憶體,並且仍然以指標的形式返回,長度不需要返回,但要記得在程式結束前釋放(刪除)應用的動態空間。

  5. 匿名使用者2024-02-01

    陣列名稱 + 陣列大小。 事情就是這樣。

    int a[10];

    getarray( int b, int length);

    2.在子函式中包含 new 或 malloc new 陣列是有風險的,但不支援這樣做。

    getarray( int* b, int length);

    4.可以引用陣列,但結果只是陣列第乙個元素的位址。

  6. 匿名使用者2024-01-31

    1.直接傳遞陣列的第乙個位址,即陣列的變數名;

    2.最好在 main 函式中使用 new allocate, delete free;

    3.陣列開頭的位址是指標,當然必要時會傳遞長度;

    4.即使有指標和引用,看起來也很凌亂,但應該可以使用指標引用。

  7. 匿名使用者2024-01-30

    陣列在 C++ 中以指標的形式傳遞。

    我們可以將引數寫成指標或陣列,但本質上它們是傳遞指標的。 引用 C++ 入門中的示例:

    雖然形式不同,但三個列印功能是等效的。

    每個函式都有乙個 const int* 引數。

    void print(const int*);

    void print(const int);正如你所看到的,該函式的目的是作用於乙個陣列。

    void print(const int[10]);這裡的維度表示我們期望陣列包含多少個元素,這不一定是真的。

    以上三種形式的宣告是等價的,當呼叫 print 函式時,編譯器只檢查傳遞的引數是否為(或可以轉換為)const int*:

    int i = 0, j[2] = ;

    print(&i);正確:&i 的型別為 int*

    print(j);正確:j 到 int* 並指向 j[0]。

  8. 匿名使用者2024-01-29

    陣列在函式中的傳遞實際上是陣列的第乙個位址,只要你理解這一點。

    指標是位址,引用是位址......

相關回答
15個回答2024-02-09

點選業力,在後台按鈕中,業力將轉為轉移價值。 >>>More

9個回答2024-02-09

範圍。 你靜態字元 *chh;

static char *ch1;雖然兩個指標指向的位址沒有變化,但你有沒有想過它們指向的記憶體位址是否已經釋放,char chc[10]; 它是本地的,函式已經結束,生命週期已經結束,你正在嘗試使用 void times() 中的指標訪問它。 >>>More

7個回答2024-02-09

如果存在異常或空引用,則一定是程式本身有問題。 >>>More

5個回答2024-02-09

1.當某些軟體首次執行時,系統將提示您選擇接入點,直接在設定或這些聯網軟體的設定中。 >>>More