傳遞結構的位址

利用指標傳遞結構時
允許函數直接更改欄位的值

函數宣告

傳回值型態 函數名稱(struct 結構名稱*);


函數定義

傳回值型態 函數名稱(struct 結構名稱1* 指標1){
 
        ……….
 
}

函數呼叫

函數名稱(&結構名稱);

在函數內
可以利用(->)運算子
存取欄位值

Ex:

[code language=”cpp”]
#include <iostream>
#include <string>
using namespace std;

struct student
{
string name;
string id;
int math;
int eng;
};

void change(struct student*); //函數原型宣告

int main() {

struct student s1={"Tony","AMA104143",70,60};

cout << "math=" << s1.math << endl;
cout << "english=" << s1.eng << endl;
cout << endl;

change(&s1); //呼叫函數,傳入結構位址,交換成績

cout << "math=" << s1.math << endl;
cout << "english=" << s1.eng << endl;

}

//函數定義
void change(struct student* ptr){

int temp;

temp=ptr->math;
ptr->math=ptr->eng;
ptr->eng=temp;

}
[/code] 

 

有疑問? 留個言吧!

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料