【C++】函数 指针类型参数 与 引用类型参数 对比 ( 修改外部变量需要传入的参数要求 | 参数作返回值 )
文章目錄
- I . 博客總結(jié) . 指針與引用類(lèi)型參數(shù)
- II . 指針作為參數(shù)和返回值
- III . 引用參數(shù)簡(jiǎn)介
- IV . 引用作為參數(shù)和返回值
I . 博客總結(jié) . 指針與引用類(lèi)型參數(shù)
1 . 討論問(wèn)題 : 本章只針對(duì)一點(diǎn)進(jìn)行討論 , 那就是對(duì)兩種類(lèi)型的參數(shù)修改 , 是否影響到外部的變量 ; 傳入什么樣的參數(shù)才能修改外部變量 , 即 參數(shù)當(dāng)返回值使用 ;
2 . 如果要在函數(shù)中修改 N 維指針指向 :
① 使用指針作為參數(shù) : 必須傳入 N + 1 維 ( 及以上 ) 指針參數(shù) , 才可以修改 N 維指針的指向 ;
② 使用引用作為參數(shù) : 可以傳入 N 維指針的引用作為參數(shù) , 就可以修改 N 維指針的指向 ;
3 . 參數(shù)使用語(yǔ)言環(huán)境 : 引用類(lèi)型參數(shù)只能在 C++ 環(huán)境中使用 , 指針類(lèi)型參數(shù)可以用于 C / C++ 兩種語(yǔ)言環(huán)境中 , 因此很多基礎(chǔ)庫(kù) 如 FFMPEG , OpenSL ES 等使用的都是指針類(lèi)型參數(shù) ;
II . 指針作為參數(shù)和返回值
指針作為參數(shù)和返回值 : 如果是指針作為參數(shù) , 修改 N 維指針指向的地址 , 那么需要傳入 N + 1 維指針 , 傳入指向該 N 維指針 的指針參數(shù) ( N + 1 維指針 ) , 才能在函數(shù)中修改該 N 維指針的指向 ;
① 一維指針參數(shù) : 傳入一維指針 , 只能修改指向的內(nèi)存的內(nèi)容 ; 修改一維指針本身指向無(wú)意義 ;
② 二維指針參數(shù) : 傳入 二維指針 , 只能修改一維指針 及 以下的內(nèi)容 ; 修改二維指針本身指向無(wú)意義 ;
③ N 維指針參數(shù) : 傳入 N 維指針 , 只能修改 N - 1 維指針 及 以下的內(nèi)容 , 修改 N 維指針內(nèi)容 無(wú)意義 ;
更多內(nèi)容參考 【Android FFMPEG 開(kāi)發(fā)】FFMPEG 方法中指針類(lèi)型參數(shù)說(shuō)明 ( 一維指針類(lèi)型參數(shù) | 二維指針類(lèi)型參數(shù) )
III . 引用參數(shù)簡(jiǎn)介
1 . C 語(yǔ)言中的參數(shù) 分類(lèi) :
① 普通變量參數(shù) : C 語(yǔ)言中 普通變量 ( 非指針變量 ) 作為參數(shù) , 只能進(jìn)行值傳遞 , 不能通過(guò)參數(shù)返回結(jié)果 ;
② 指針變量參數(shù) : C 語(yǔ)言中 , 如果要讓函數(shù)的參數(shù)可以將結(jié)果返回 , 則必須使用指針作為參數(shù) ;
2 . C++ 中的引用參數(shù) : C++ 在 C 語(yǔ)言基礎(chǔ)上擴(kuò)展了 引用 數(shù)據(jù)類(lèi)型 , 使用引用可以替代上面的指針作為參數(shù)的情況 , 使參數(shù)具有返回結(jié)果的能力 ;
3 . 作用及意義 :
① 具有返回值能力 : 使用引用作參數(shù) , 可以將參數(shù)當(dāng)做返回值使用 ;
② 提高參數(shù)傳遞效率 : 大型對(duì)象作參數(shù)時(shí) , 使用引用類(lèi)型 , 可以提高參數(shù)傳遞效率 ;
更多關(guān)于引用的內(nèi)容參考 【C++ 語(yǔ)言】引用 ( 引用簡(jiǎn)介 | 指針常量 | 常量指針 | 常引用 | 引用參數(shù) | 引用 指針 對(duì)比 )
IV . 引用作為參數(shù)和返回值
引用作為參數(shù)和返回值 : 如果是引用作為參數(shù) , 修改 N 維指針指向的地址 , 那么需要傳入 N 維指針的引用即可 ,在函數(shù)中修改該引用 , 即可修改外部的被引用的變量 ;
① 一維指針引用參數(shù) : 傳入一維指針引用 , 可以完全修改該指針本身的指向 ;
② 二維指針引用參數(shù) : 傳入 二維指針 , 可以修改二維指針本身 及 以下的內(nèi)容 ;
③ N 維指針引用參數(shù) : 傳入 N 維指針 , 可以修改 N 維指針本身 及 以下的內(nèi)容 ;
總結(jié)
以上是生活随笔為你收集整理的【C++】函数 指针类型参数 与 引用类型参数 对比 ( 修改外部变量需要传入的参数要求 | 参数作返回值 )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【Android FFMPEG 开发】F
- 下一篇: 【Android 内存优化】Androi