本文包括兩個版本,都講到了引數傳遞和指標傳遞,作者水平有限,如有不足之處,敬請指正!
一、
//《結構體的引數傳遞和指標傳遞》
//版本一:皆採用函式返回值為整個結構體的方式
#include struct gas
;struct gas func1(struct gas str); //申明函式func1()
struct gas func2(struct gas *ptr); //申明函式func2()
int main(int argc, char *argv);
//func1()函式傳參,傳遞整個結構體
str = func1(str);
printf("mpg1 = %f\n", str.mpg); //列印mpg的值
//func2函式傳參,傳遞乙個位址進去,這裡傳遞整個結構體的位址
str = func2(&str);
printf("mpg2 = %f\n", str.mpg); //列印mpg的值
return 0;
}//定義函式func1(),形參為整個結構體,返回值也為整個結構體
struct gas func1(struct gas str)
//定義函式func2(),形參為乙個指標,應傳遞乙個位址
struct gas func2(struct gas *ptr)
二、
//《結構體的引數傳遞和指標傳遞》
//版本二:使用指標傳遞時,不採用返回值方式
#include struct gas
;struct gas func1(struct gas str);
void func2(struct gas *ptr);
int main(int argc, char *argv);
//func1函式傳參
str = func1(str);
printf("mpg1 = %f\n", str.mpg);
//函式func2傳參
func2(&str);
return 0;
}//定義函式func1(),形參為整個結構體,返回值也為整個結構體
struct gas func1(struct gas str)
//定義函式func2(),形參為乙個指標,應傳遞乙個位址,由於該函式是void型別,所以沒有返回值
結構體和結構體指標作為引數傳遞
結構體作為引數傳遞 include includeusing namespace std 宣告結構體 struct namect 函式宣告必須提供資料型別,但是可以不傳引數 struct namect getinfo void 宣告函式的返回值是乙個結構體,引數型別也是結構體,這裡結構體作為引數值直...
C語言關於結構體做引數傳遞
首先結構體做函式引數有三種傳遞方式 一是傳遞結構體變數,這是值傳遞,二是傳遞結構體指標,這是位址傳遞,三是傳遞結構體成員,當然這也分為值傳遞和位址傳遞。以傳引用呼叫方式傳遞結構比用傳值方式傳遞結構效率高。以傳值方式傳遞結構需要對整個結構做乙份拷貝。下面看乙個列子,student結構體中包含該學生的各...
C語言關於結構體做引數傳遞
首先結構體做函式引數有三種傳遞方式 一是傳遞結構體變數,這是值傳遞,二是傳遞結構體指標,這是位址傳遞,三是傳遞結構體成員,當然這也分為值傳遞和位址傳遞。以傳引用呼叫方式傳遞結構比用傳值方式傳遞結構效率高。以傳值方式傳遞結構需要對整個結構做乙份拷貝。下面看乙個列子,student結構體中包含該學生的各...