將乙個結構體變數中的資料傳遞給另乙個函式,有下列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 未定義顯示建構函式 直接使用...