結構體做為引數返回資料

2021-08-25 16:24:19 字數 580 閱讀 8299

struct s{

int a;

int b;

如果我們要給函式傳遞這個結構體的值有兩種方式,一種是直接之傳遞,一種是傳遞指標,傳遞指標的效率要優於值傳遞方式,並且值傳遞不能修改結構體本身,只能傳入資料。

int function(struct s *s) {

s->a = 12;

s->b = 13;

但是我們如果想在函式體內修改結構體指標指向的位址就不行了。這裡我們只能使用指標的指標來做操作。

int function(struct s *s) {

strtuct s e;

s = e;

這樣我們是不能在funciton之後獲得e的值的。這與函式執行的特性有關。

int function(struct s **s) {

strtuct s e;

*s = e;

函式呼叫時,都會複製乙份引數。當我們去修改指標的時候,其實是修改的這個副本指向的內容。我們現在把位址重定向到乙個我們想要的位址,也是在修改這個副本,副本重儲存的指標變成了我們想要的,而原來的儲存的指標還沒有變化。這和我們為什麼要採用char**來初始化乙個道理。

Scala 結構體引數

描述 通過利用反射機制為靜態語言新增動態屬性。從而使得引數型別不受限與某個已經命名的型別。結構體型別通過花括號 進行定義,花括號中給出方法標籤 抽象方法 在時用時候具體給出具體實現 packagecn.scala objectscala structure1 int defmain args arr...

變數 引數 結構體

內容預覽 include include 實現pow函式 冪運算 double power double int double num1,double num2 形式引數 intmain double power double num1,int num2 函式定義,形式引數 return resul...

結構體和結構體指標作為引數傳遞

結構體作為引數傳遞 include includeusing namespace std 宣告結構體 struct namect 函式宣告必須提供資料型別,但是可以不傳引數 struct namect getinfo void 宣告函式的返回值是乙個結構體,引數型別也是結構體,這裡結構體作為引數值直...