在C 中結構體為函式引數的例子

2021-07-08 15:18:28 字數 938 閱讀 2694

將乙個結構體變數中的資料傳遞給另乙個函式,有下列3種方法: 

1.用結構體變數名作引數。一般較少用這種方法。

2.用指向結構體變數的指標作實參,將結構體變數的位址傳給形參。

3.用結構體變數的引用變數作函式引數。

下面通過乙個簡單的例子來說明,並對它們進行比較。

例7.5 有乙個結構體變數stu,內含學生學號、姓名和3門課的成績。要求在main函式中為各成員賦值,在另一函式print中將它們的值輸出。

(1) 用結構體變數作函式引數

#include

#include

using namespace std;

struct student//宣告結構體型別student

;int main( )

void print(student st)

stu=;//定義結構體student變數stu並賦初值

int main( )

//定義函式,形參p是基型別為student的指標變數

void print(student *p)

stu=;

void main( )

//函式定義,形參為結構體student變數的引用

void print(student &stud)

{cout《程式(1)用結構體變數作實參和形參,程式直觀易懂,效率是不高的。

程式(2)採用指標變數作為實參和形參,空間和時間的開銷都很小,效率較高。但程式(2)不如程式(1)那樣直接。

程式(3)的實參是結構體student型別變數,而形參用student型別的引用,虛實結合時傳遞的是stu的位址,因而效率較高。它兼有(1)和(2)的優點。

引用變數主要用作函式引數,它可以提高效率,而且保持程式良好的可讀性。在本例中用了string方法定義字串變數,在某些c++系統中目前不能執行這些程式,讀者可以修改程式,使之能在自己所用的系統中執行。

在結構體中使用函式指標的例子

void menu11 void void menu12 void void menu21 void typedef struct table table table 3 void setup void loop 以下是 分析 typedef struct table 定義乙個結構體,裡面包含了乙個...

結構體做函式引數 c

作用 將結構體作為引數箱函式中傳遞 傳遞的方式 include includeusing namespace std 定義學生結構體 struct student 列印學生資訊的函式 1 值傳遞 void printstuinfo struct student s 位址傳遞,外側的資料也會發生變化 ...

C 結構體中無引數的預設建構函式

我們知道,c 類中當使用者沒有顯示的宣告建構函式時,編譯器會自動生成乙個無引數的預設建構函式 結構體除了成員訪問許可權外與類很相似,並且在學習一些庫的 時出現了這種寫法,故作如下測試 include include using namespace std intmain 未定義顯示建構函式 直接使用...