亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++函數(shù)三種傳參形式(指針傳遞、引用傳遞、值傳遞)

 更新時(shí)間:2024年03月19日 10:07:22   作者:學(xué)不會(huì)2233  
不論是哪種參數(shù)傳遞方式,都有形參和實(shí)參之分,本文主要介紹了C++函數(shù)三種傳參形式(指針傳遞、引用傳遞、值傳遞),具有一定的參考價(jià)值,感興趣的可以了解一下

前言

不論是哪種參數(shù)傳遞方式,都有形參和實(shí)參之分,都會(huì)在調(diào)用函數(shù)時(shí)進(jìn)行一次復(fù)制,將實(shí)參的值賦予形參。對(duì)于值傳遞,實(shí)參形參概念較好區(qū)分,但對(duì)于地址傳遞,形參實(shí)參指向的地址相同,可能會(huì)產(chǎn)生操作的是同一變量的想法,實(shí)則不然。(這也是理解二級(jí)指針作用的核心知識(shí)點(diǎn))

指針傳遞

變量形式、函數(shù)原型及對(duì)應(yīng)傳參形式:

  • 變量:int a = 0; int *b = 0;
  • 函數(shù)原型:void func(int *arg);
  • 傳參形式:func(&a); func(b);

解釋:

函數(shù)得參數(shù)類型是int指針類型,接受的參數(shù)的一個(gè)地址。因此,對(duì)于普通變量a,需要先用&符號(hào)取地址后傳入,故傳入&a。對(duì)于指針b,指針就是地址,因此直接傳入b即可。

#include <iostream>
using namespace std;
void exchange(int *a, int *b)
{
	int temp;
	temp = *a;
	*a = *b;
	*b = temp;
}
 
int main()
{
	int x, y;
	cin >> x >> y;
	exchange(&x, &y);
	cout << x << y;
}

引用傳遞

最復(fù)雜的是引用傳遞。此次只講解最基礎(chǔ)簡(jiǎn)單的使用。

變量形式、函數(shù)原型及對(duì)于傳參形式:

  • 變量:int a = 0; int *b = 0;
  • 函數(shù)原型:void func(int &arg);
  • 傳參形式:func(a); func(b);func(*b)

解釋:

函數(shù)的參數(shù)類型是引用類型。對(duì)于變量a,直接傳入a。對(duì)于指針b,可以選擇傳入地址b或者傳入b指向的值*b。

區(qū)別:待定

引用的本質(zhì):待定

#include <iostream>
using namespace std;
void exchange(int &a, int &b)
{
	int temp;
	temp = a;
	a = b;
	b = temp;
}
 
int main()
{
	int x, y;
	cin >> x >> y;
	exchange(x, y);
	cout << x << " " << y;
}

值傳遞

變量形式、函數(shù)原型及對(duì)應(yīng)傳參形式:

  • 變量:int a = 0; int *b = 0;
  • 函數(shù)原型:void func(int arg);
  • 傳參形式:func(a); func(*b);

解釋:

函數(shù)的參數(shù)類型是int類型,接收的值是int型變量的值。因此,對(duì)于變量a,本身就是int型變量,故直接傳入。對(duì)于指針變量b,是需要用*符號(hào)進(jìn)行解引用獲取指針指向的值,故傳入*b。

#include <iostream>
using namespace std;
void exchange(int a, int b)
{
	int temp;
	temp = a;
	a = b;
	b = temp;
}
 
int main()
{
	int x, y;
	cin >> x >> y;
	exchange(x, y);
	cout << x << " " << y;
}

總結(jié):

1.引用傳遞和值傳遞都是傳地址,可理解為實(shí)參和形參的內(nèi)存地址相同,在函數(shù)中的賦值操作在函數(shù)結(jié)束后仍會(huì)保留(只要被賦值的變量仍存在)。而值傳遞傳入的是實(shí)參的值,調(diào)用函數(shù)時(shí)會(huì)進(jìn)行拷貝操作將實(shí)參的值賦予形參,實(shí)參和形參的地址不同,因此在函數(shù)體內(nèi)對(duì)形參的賦值操作不會(huì)改變實(shí)參的值。

到此這篇關(guān)于C++函數(shù)三種傳參形式(指針傳遞、引用傳遞、值傳遞)的文章就介紹到這了,更多相關(guān)C++函數(shù)傳參內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++基于Boost.Asio實(shí)現(xiàn)端口映射器的過(guò)程詳解

    C++基于Boost.Asio實(shí)現(xiàn)端口映射器的過(guò)程詳解

    Boost.Asio 是一個(gè)功能強(qiáng)大的 C++ 庫(kù),用于異步編程和網(wǎng)絡(luò)編程,它提供了跨平臺(tái)的異步 I/O 操作,在這篇文章中,我們將深入分析一個(gè)使用 Boost.Asio 實(shí)現(xiàn)的簡(jiǎn)單端口映射服務(wù)器,文中有詳細(xì)的代碼講解,需要的朋友可以參考下
    2023-11-11
  • 詳解C++ const修飾符

    詳解C++ const修飾符

    const 是 constant 的縮寫(xiě),const可以幫我們避免無(wú)意之中的錯(cuò)誤操作,本文給大家介紹C++ const修飾符的相關(guān)知識(shí),通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-05-05
  • C++11 <future>中std::promise 介紹

    C++11 <future>中std::promise 介紹

    這篇文章主要介紹了C++11 <future>中std::promise 介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • C語(yǔ)言實(shí)現(xiàn)的一個(gè)萬(wàn)年歷小程序

    C語(yǔ)言實(shí)現(xiàn)的一個(gè)萬(wàn)年歷小程序

    這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)的一個(gè)萬(wàn)年歷小程序,具有一定的參考價(jià)值,做C語(yǔ)言日期計(jì)算的朋友可以參考下
    2014-07-07
  • C++11新特性std::tuple的使用方法

    C++11新特性std::tuple的使用方法

    這篇文章主要介紹了C++11新特性-std::tuple的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • C及C++中typedef的簡(jiǎn)單使用介紹

    C及C++中typedef的簡(jiǎn)單使用介紹

    C/C++中關(guān)鍵字typedef的理解不是多透徹,今天小編抽空給大家分享下C及C++中typedef的簡(jiǎn)單使用介紹,需要的朋友可以參考下
    2016-10-10
  • C語(yǔ)言結(jié)構(gòu)體指針引用詳解

    C語(yǔ)言結(jié)構(gòu)體指針引用詳解

    C語(yǔ)言中結(jié)構(gòu)體指針,可細(xì)分為指向結(jié)構(gòu)體變量的指針和指向結(jié)構(gòu)體數(shù)組的指針。本文將詳細(xì)為大家介紹一下這兩種結(jié)構(gòu)體指針如何引用,需要的小伙伴可以參考一下
    2021-12-12
  • C++中輸出十六進(jìn)制形式的字符串

    C++中輸出十六進(jìn)制形式的字符串

    這篇文章主要給大家介紹了C++中輸出十六進(jìn)制形式的字符串,文中給出了詳細(xì)的介紹,有需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2016-12-12
  • C語(yǔ)言數(shù)組任意位置插入一個(gè)元素方法

    C語(yǔ)言數(shù)組任意位置插入一個(gè)元素方法

    這篇文章主要給大家分享C語(yǔ)言數(shù)組任意位置插入一個(gè)元素方法,
    2021-11-11
  • C++通過(guò)ofstream和ifstream實(shí)現(xiàn)文件讀寫(xiě)

    C++通過(guò)ofstream和ifstream實(shí)現(xiàn)文件讀寫(xiě)

    本文詳細(xì)介紹了C++中通過(guò)ofstream和ifstream進(jìn)行文件的讀寫(xiě)操作,包括文件打開(kāi)模式的選擇、錯(cuò)誤處理策略以及二進(jìn)制文件的特殊處理,重點(diǎn)講解了如何使用這些類進(jìn)行文本和二進(jìn)制文件的讀寫(xiě),并強(qiáng)調(diào)了正確處理文件操作中可能出現(xiàn)的錯(cuò)誤,需要的朋友可以參考下
    2025-03-03

最新評(píng)論