如果表單引數是指標,則實際引數也是指標,如果傳入實際引數,則是指標的副本嗎?

發布 科技 2024-03-17
8個回答
  1. 匿名使用者2024-02-06

    程式 1 可以實現 a 和 b 值的交換,但程式 2 不能。 要理解這一點,您需要了解以下幾點:

    1.變數的作用範圍; 區域性變數 (void swap(a,b) 在程式 2 子程式中,變數 a、b、k 都是區域性變數,生命週期從呼叫該函式開始,函式執行後變數被登出。

    2、函式引數的傳遞方式; 上面的兩個子例程通過傳遞值來傳遞引數---將引數的值複製到引數中。 但是,子程式中表單引數的操作不會影響實際引數。

    3.指標變數的含義; 指標變數是指向變數位址(整形器、浮點、字元等)位址的變數。 也就是說,指標變數的值是變數的位址。

    如下分析: 程式1:表單引數呼叫子程式後,通過值傳遞獲取引數的值,表單引數和引數都儲存了同一變數的位址,並且在子程式中,表單引數的操作是間接對指向變數的,而不是表單引數本身的值。

    可以更改 a 和 b 的值。

    程式2:在子例程中,所有操作都是對引數本身的值執行的,執行完成後,引數(區域性變數)被登出。

    過程 2:

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

    是副本。 後乙個程式之所以不能實現交換,是因為 C C++ 函式引數傳遞了值(複製引數值的引數),所以函式中引數的運算不會影響對應的引數。

    前乙個程式之所以能夠實現交換,是因為函式不對引數進行操作,而是對引數引用的記憶體進行操作,而引數引用的記憶體就是相應引數引用的記憶體。

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

    主要是功能。

    void swap(int a, int b)。 void swap(int *p1,int *p2),上乙個函式:只是將引數傳遞給引數,不返回(傳遞值)以下函式:

    就是把引數的位址傳遞給引數,引數實際上在程式中操作引數的位址,所以位址下的值在程式中交換,也起到了交換的目的。

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

    標準 C 中沒有引用,只能使用指標引數。

    C++ 引入了指標引數來降低指標靈活性的風險,因為指標引數不僅可以將對資料的引用傳遞到函式中,還可以更改函式內的指標,即在函式內部更改呼叫域的變數(而不僅僅是物件)。

    與引用相比,指標具有以下特徵:

    指標變數可以重複賦值或更改(不適用於引用,一旦賦值,就無法更改),指標變數可以為空(指標必須指向特定物件)。

    如果你不使用這些特性,覺得它們很麻煩,並且對非純C沒問題(即你不需要支援其他C的超集,如Objective-C),那麼使用引用引數,如果需要,甚至可以新增const以獲得進一步的約束。

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

    C++ 不能將陣列直接傳遞給函式,但可以使用陣列名稱作為指向函式的陣列指標。

    函式有三種接收指標的方法,int * 指標。

    int [10] 固定長度陣列形式。

    int 是乙個無限長的陣列。

    以上三種效果是一樣的,都是接收指標,所以都是指標。 3 是引號。

    需要注意的是,int a[10] 用作建立包含 10 個整數元素的陣列的定義。 但是,當用於表單引數時,它是用來接收整數指標的,並且對長度沒有嚴格的限制,並且在編譯時不會檢查。

    例如,可以編譯以下程式並正常執行。

    引數維度為 1

    void fun(int p[1])

    main()

    int a[100];建立乙個包含 100 個元素的陣列,以確保 fun 函式不會越界。

    fun(a);

    cout <

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

    第乙個是,第二個和第四個是一樣的,第三個是引用。 請同意!

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

    第二個不是,其餘的都是。

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

    fun (int a[10] ) 這個不是,其他一切都是。

相關回答
17個回答2024-03-17

若要通過傳遞函式來更改變數的值,必須傳遞位址。 您的程式正在傳遞變數 swap(a,b) 的值; 如果要更改變數的值,必須傳遞變數的位址,或者通過指標來傳遞,如果是陣列,可以直接使用陣列名稱,但如果是陣列的元素,則仍然需要使用位址。 就像樓上的那個改變他一樣。 >>>More

3個回答2024-03-17

你好房東,讀 shen(第乙個音)。

讓我先簡單介紹一下這個夜叉。 參宿四。 >>>More

12個回答2024-03-17

益山人參是山參的一種。 移山人參有兩種:“山遷徙”和“遷鄉”:“遷山”是指山農放山時,發現野山參苗由於體重小、人參年齡小而不適合使用,於是集中精力移植到家附近的山林中, 易於保護並使其自然生長;“居家遷徙”是指人參種植者將園內種植的人參幼苗移植到山林中,無需澆水施肥,使其在野外環境中自然生長。 >>>More

20個回答2024-03-17

分配給引數的位址和引數是不同的。

如果不使用指標或引用,引數只能將某物(value)傳遞給引數,就像上面的例子一樣,帶有引數的事物可以複製並移動到引數中,引數中的事物(value)被更改但不會反向傳遞,即引數中的事物不會覆蓋引數的事物(值); >>>More

18個回答2024-03-17

戴媛指的是(腳踩在地上

1.穿圓軌。 >>>More