傳遞結構的位址

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

函數宣告

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


函數定義

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

函數呼叫

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

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

Ex:

#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;
 
}

 

 

有疑問? 留個言吧!

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