C語言 結構體變數作函式引數(三個方法)

2021-10-20 22:02:20 字數 1385 閱讀 7513

如果對結構體變數的使用不太熟悉,可以先看看博主的這篇文章【c語言】結構體變數定義、初始化、使用。

首先宣告結構體型別,注意,若要跨函式使用結構體,結構體型別的宣告必須在函式外部:

struct students

;

然後初始化結構體變數及指向結構體變數的指標:

struct students stu1=,*pstu;

pstu=&stu1;

函式體:

// 1 用結構體變數作函式引數

void printstu(struct students stu)

函式體:

// 2 用結構體變數的成員作函式引數

void printstu2(char name[20],int age)

函式體:

// 3 用指向結構體變數(或結構體陣列)的指標作為引數

void printstu3(struct students *pstu)

完整測試**如下:

#include #include //宣告結構體型別(若要跨函式使用,必須定義在外部)

struct students

;int main()

,*pstu;

pstu=&stu1;

//函式宣告

void printstu(struct students);

void printstu2(char [20],int);

void printstu3(struct students *);

//呼叫

printf("姓名 年齡\n\n");

printstu(stu1);

printstu2(stu1.name,stu1.age);

printstu3(pstu);

return 0;

}//函式定義

// 1 用結構體變數作函式引數

void printstu(struct students stu)

// 2 用結構體變數的成員作函式引數

void printstu2(char name[20],int age)

// 3 用指向結構體變數(或結構體陣列)的指標作為引數

void printstu3(struct students *pstu)

結果:

C語言結構體變數和結構體變數的指標作函式引數例題

將n個學生的資料表示為結構體變數,內含學生學號 姓名和三門課的成績。要求輸出平均成績最高的學生的資訊 包括學號 姓名 3門課成績和平均成績 解題思路 將n個學生的資料表示為結構體陣列 有n個元素 按照功能函式化的思想,分別用3個函式來實現不同的功能 1 用input函式來輸入資料和求各學生的平均成績...

C語言用結構體指標作函式引數

這種方式比用結構體變數作函式引數效率高,因為無需傳遞各個成員的值,只需傳遞乙個位址,且函式中的結構體成員並不佔據新的記憶體單元,而與主調函式中的成員共享儲存單元。這種方式還可通過修改形參所指成員影響實參所對應的成員值。例如struct book main fun book1 printf d cop...

C語言指標變數作函式引數

按如下函式原型用函式程式設計解決如下的日期轉換問題 要求考慮閏年的問題 輸入某一年的第幾天,計算並輸出它是這一年的第幾月第幾日。函式功能 對給定的某一年的第幾天,計算它是這一年的第幾月第幾日 函式入口引數 整型變數year,儲存年 整型變數yearday,儲存這一年的第幾天 函式出口引數 整型指標p...