結構體作為函式引數

2021-06-17 22:15:25 字數 532 閱讀 4878

c語言中結構體在函式中的應用

前兩天在編寫一段**時突然對結構體在函式中的用法有些模糊了,經過複習,基本弄清了這些知識,特總結如下:

一、結構體與函式引數

結構体作函式引數可分為

傳值與傳指標。

1.傳值時結構體引數會被拷貝乙份,在函式體內修改結構體引數成員的值實際上是修改呼叫引數的乙個臨時拷貝的成員的值,

這不會影響到呼叫引數。在這種情況下,由於涉及到結構體引數的拷貝,程式空間及時間效率都會受到影響,所以這種方法

基本不用。

例如:typedef struct tagstudentstudent;

void fun(student stu)

2.傳指標時直接將結構體的

首位址傳遞給函式體,在函式體中通過指標引用結構體成員,

可以對結構體引數成員的值造成實際影響。這種用法效率高,經常採用。

例如:typedef struct tagstudentstudent;

void fun(student* pstu)

結構體作為函式引數

結構體巨集觀上可以當做變數看待,可以作為函式引數,也可以作為函式返回值。再軟體程式設計上的使用,可以與c 的類,封裝的功能平分天下。將乙個結構體變數中的資料傳遞給另乙個函式,有下列 3種方法 用結構體變數名作引數。一般較少用這種方法。用指向結構體變數的指標作實參,將結構體變數的位址傳給形參。用結構體...

結構體作為函式引數傳遞

結構變數是乙個標量,它可以用於其他標量可以使用的任何場合,但把結構體作為引數傳遞給乙個函式要注重效率 例如下面這樣乙個結構體 define product size 20 typedef structtransaction 如果我們需要列印裡面的資料,函式原型為 void print receipt...

結構體 結構指標作為函式引數

結構體 結構體指標作為函式的引數現在應用的非常廣泛,但一些細微之處還需要引起注意。本文將討論其作為形參和實參的區別。將結構體作為函式的引數,目的是通過 makeinfo 函式呼叫去改變 person 結構體中 letters 的值。情形1 include include struct namect ...