欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

結(jié)構(gòu)體類型數(shù)據(jù)作為函數(shù)參數(shù)(三種方法)

 更新時(shí)間:2013年10月16日 09:33:24   作者:  
將一個(gè)結(jié)構(gòu)體中變量中的數(shù)據(jù)傳遞給另一個(gè)函數(shù),有以下三種方法。需要的朋友可以過來(lái)參考下,希望對(duì)大家有所幫助

(1)用結(jié)構(gòu)體變量名作為參數(shù)。

復(fù)制代碼 代碼如下:

#include<iostream>
#include<string>
using namespace std;
struct Student{
 string name;
 int score;
};
int main(){
 Student one;
 void Print(Student one);
 one.name="千手";
 one.score=99;
 Print(one);
 cout<<one.name<<endl;
 cout<<one.score<<endl;//驗(yàn)證 score的值是否加一了
 return 0;
}
void Print(Student one){
 cout<<one.name<<endl;
 cout<<++one.score<<endl;//在Print函數(shù)中,對(duì)score進(jìn)行加一
}


這種方式值采取的“值傳遞”的方式,將結(jié)構(gòu)體變量所占的內(nèi)存單元的內(nèi)存全部順序傳遞給形參。在函數(shù)調(diào)用期間形參也要占用內(nèi)存單元。這種傳遞方式在空間和實(shí)踐上開銷較大,如果結(jié)構(gòu)體的規(guī)模很大時(shí),開銷是很客觀的。

并且,由于采用值傳遞的方式,如果在函數(shù)被執(zhí)行期間改變了形參的值,該值不能反映到主調(diào)函數(shù)中的對(duì)應(yīng)的實(shí)參,這往往不能滿足使用要求。因此一般較少使用這種方法。

(2)用指向結(jié)構(gòu)體變量的指針作為函數(shù)參數(shù)

復(fù)制代碼 代碼如下:

#include<iostream>
#include<string>
using namespace std;
struct Student{
 string name;
 int score;
};
int main(){
 Student one;
 void Print(Student *p);
 one.name="千手";
 one.score=99;
 Student *p=&one;
 Print(p);
 cout<<one.name<<endl;
 cout<<one.score<<endl;//驗(yàn)證 score的值是否加一了
 return 0;
}
void Print(Student *p){
 cout<<p->name<<endl;
 cout<<++p->score<<endl;//在Print函數(shù)中,對(duì)score進(jìn)行加一
}



這種方式雖然也是值傳遞的方式,但是這次傳遞的值卻是指針。通過改變指針指向的結(jié)構(gòu)體變量的值,可以間接改變實(shí)參的值。并且,在調(diào)用函數(shù)期間,僅僅建立了一個(gè)指針變量,大大的減小了系統(tǒng)的開銷。

(3)用接頭體變量的引用變量作函數(shù)參數(shù)

復(fù)制代碼 代碼如下:

#include<iostream>
#include<string>
using namespace std;
struct Student{
 string name;
 int score;
};
int main(){
 Student one;
 void Print(Student &one);
 one.name="千手";
 one.score=99;
 Print(one);
 cout<<one.name<<endl;
 cout<<one.score<<endl;//驗(yàn)證 score的值是否加一了
 return 0;
}
void Print(Student &one){
 cout<<one.name<<endl;
 cout<<++one.score<<endl;//在Print函數(shù)中,對(duì)score進(jìn)行加一
}



實(shí)參是結(jié)構(gòu)體變量,形參是對(duì)應(yīng)的結(jié)構(gòu)體類型的引用,虛實(shí)結(jié)合時(shí)傳遞的是地址,因而執(zhí)行效率比較高。而且,與指針作為函數(shù)參數(shù)相比較,它看起來(lái)更加直觀易懂。

因而,引用變量作為函數(shù)參數(shù),它可以提高效率,而且保持程序良好的可讀性。

相關(guān)文章

  • 利用C/C++二進(jìn)制讀寫png文件的方法示例

    利用C/C++二進(jìn)制讀寫png文件的方法示例

    最近在做項(xiàng)目的時(shí)候遇到了這個(gè)問題,所以想著總結(jié)下,方法自己和有需要的朋友,下面這篇文章主要介紹了利用C/C++二進(jìn)制讀寫png文件的方法,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2016-12-12
  • c++動(dòng)態(tài)庫(kù)調(diào)用的實(shí)現(xiàn)

    c++動(dòng)態(tài)庫(kù)調(diào)用的實(shí)現(xiàn)

    本文主要介紹了c++動(dòng)態(tài)庫(kù)調(diào)用的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • C++線性時(shí)間的排序算法分析

    C++線性時(shí)間的排序算法分析

    這篇文章主要介紹了C++線性時(shí)間的排序算法分析,是非常經(jīng)典的非比較排序算法,對(duì)于C++程序員有很大的借鑒價(jià)值,需要的朋友可以參考下
    2014-08-08
  • C++11中std::async的使用詳解

    C++11中std::async的使用詳解

    這篇文章主要介紹了C++11中std::async的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 詳解C++中new運(yùn)算符和delete運(yùn)算符的使用

    詳解C++中new運(yùn)算符和delete運(yùn)算符的使用

    這篇文章主要介紹了C++中new運(yùn)算符和delete運(yùn)算符的使用,文章來(lái)自于微軟開發(fā)者文檔,因而根據(jù)Visual C++的一些特性來(lái)進(jìn)行講解,需要的朋友可以參考下
    2016-01-01
  • C++實(shí)踐Time類中的運(yùn)算符重載參考方法

    C++實(shí)踐Time類中的運(yùn)算符重載參考方法

    今天小編就為大家分享一篇關(guān)于C++實(shí)踐Time類中的運(yùn)算符重載參考方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • C語(yǔ)言實(shí)現(xiàn)帶頭雙向循環(huán)鏈表

    C語(yǔ)言實(shí)現(xiàn)帶頭雙向循環(huán)鏈表

    本文主要介紹了C語(yǔ)言實(shí)現(xiàn)帶頭雙向循環(huán)鏈表,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 最短時(shí)間學(xué)會(huì)基于C++實(shí)現(xiàn)DFS深度優(yōu)先搜索

    最短時(shí)間學(xué)會(huì)基于C++實(shí)現(xiàn)DFS深度優(yōu)先搜索

    常見使用深度優(yōu)先搜索(DFS)以及廣度優(yōu)先搜索(BFS)這兩種搜索,今天我們就來(lái)講講什么是深度優(yōu)先搜索,感興趣的可以了解一下
    2021-08-08
  • C++中的String的常用函數(shù)用法(最新推薦)

    C++中的String的常用函數(shù)用法(最新推薦)

    這篇文章主要介紹了C++中的String的常用函數(shù)用法總結(jié),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • C語(yǔ)言深入分析浮點(diǎn)型數(shù)據(jù)存儲(chǔ)

    C語(yǔ)言深入分析浮點(diǎn)型數(shù)據(jù)存儲(chǔ)

    使用編程語(yǔ)言進(jìn)行編程時(shí),需要用到各種變量來(lái)存儲(chǔ)各種信息。變量保留的是它所存儲(chǔ)的值的內(nèi)存位置。這意味著,當(dāng)您創(chuàng)建一個(gè)變量時(shí),就會(huì)在內(nèi)存中保留一些空間。您可能需要存儲(chǔ)各種數(shù)據(jù)類型的信息,操作系統(tǒng)會(huì)根據(jù)變量的數(shù)據(jù)類型,來(lái)分配內(nèi)存和決定在保留內(nèi)存中存儲(chǔ)什么
    2022-08-08

最新評(píng)論