當(dāng)前位置:
首頁(yè) >
对C语言 结构指针变量做函数的参数 结构作为函数的参数
發(fā)布時(shí)間:2025/10/17
40
豆豆
生活随笔
收集整理的這篇文章主要介紹了
对C语言 结构指针变量做函数的参数 结构作为函数的参数
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、結(jié)構(gòu)指針變量做函數(shù)的參數(shù)
/*
用指針變量作函數(shù)參數(shù)進(jìn)行傳送,這時(shí)由實(shí)參傳向形參的只是地址,從而減少了時(shí)間和空間的開(kāi)銷(xiāo)。
*/
/*
計(jì)算一組學(xué)生的平均成績(jī)和不及格的人數(shù),用結(jié)構(gòu)指針變量作函數(shù)參數(shù)編程。
*/
#include<stdio.h> struct stu {int num;char name[8];char sex;float score; }boy[5] = {{101,"shi",'w',65},{102,"wen",'m',89},{103,"jie",'w',86}, {104,"jie jie",'m',70},{105,"hi",'m',76},}; int main(int argc,char **argv) {struct stu *ps;void ave(struct stu *ps);ps = boy;ave(ps);return 0; } void ave(struct stu *ps) {int c=0;int i;float ave;float s;for(i=0;i<5;i++,ps++){s += ps->score;if(ps->score < 60){c += 1; }}printf("s=%f\n",s);ave = s/5;printf("average=%f\ncount=%d\n",ave,c); }二、結(jié)構(gòu)作為函數(shù)的參數(shù)
您可以把結(jié)構(gòu)作為函數(shù)參數(shù),傳參方式與其他類(lèi)型的變量或指針類(lèi)似。您可以使用上面實(shí)例中的方式來(lái)訪問(wèn)結(jié)構(gòu)變量:
#include <stdio.h> #include <string.h>struct Books {char title[50];char author[50];char subject[100];int book_id; };/* 函數(shù)聲明 */ void printBook( struct Books book ); int main( ) {struct Books Book1; /* 聲明 Book1,類(lèi)型為 Books */struct Books Book2; /* 聲明 Book2,類(lèi)型為 Books *//* Book1 詳述 */strcpy( Book1.title, "C Programming");strcpy( Book1.author, "Nuha Ali"); strcpy( Book1.subject, "C Programming Tutorial");Book1.book_id = 6495407;/* Book2 詳述 */strcpy( Book2.title, "Telecom Billing");strcpy( Book2.author, "Zara Ali");strcpy( Book2.subject, "Telecom Billing Tutorial");Book2.book_id = 6495700;/* 輸出 Book1 信息 */printBook( Book1 );/* 輸出 Book2 信息 */printBook( Book2 );return 0; } void printBook( struct Books book ) {printf( "Book title : %s\n", book.title);printf( "Book author : %s\n", book.author);printf( "Book subject : %s\n", book.subject);printf( "Book book_id : %d\n", book.book_id); }三、結(jié)構(gòu)體的指針變量 ?中可以存儲(chǔ) ?結(jié)構(gòu)變量地址
您可以定義指向結(jié)構(gòu)的指針,方式與定義指向其他類(lèi)型變量的指針相似,如下所示: struct Books *struct_pointer; 您可以定義指向結(jié)構(gòu)的變量,如下所示: struct Books Book1; 現(xiàn)在,您可以在上述定義的指針變量中存儲(chǔ)結(jié)構(gòu)變量的地址,為了查找結(jié)構(gòu)變量的地址,請(qǐng)把&運(yùn)算符放在結(jié)構(gòu)名稱(chēng)的前面,如下所示: struct_pointer = &Book1;********讓我們使用結(jié)構(gòu)指針來(lái)重寫(xiě)上面(二中)的實(shí)例,這將有助于您理解結(jié)構(gòu)指針的概念:
#include <stdio.h> #include <string.h>struct Books {char title[50];char author[50];char subject[100];int book_id; };/* 函數(shù)聲明 */ void printBook( struct Books *book ); int main( ) {struct Books Book1; /* 聲明 Book1,類(lèi)型為 Books */struct Books Book2; /* 聲明 Book2,類(lèi)型為 Books *//* Book1 詳述 */strcpy( Book1.title, "C Programming");strcpy( Book1.author, "Nuha Ali"); strcpy( Book1.subject, "C Programming Tutorial");Book1.book_id = 6495407;/* Book2 詳述 */strcpy( Book2.title, "Telecom Billing");strcpy( Book2.author, "Zara Ali");strcpy( Book2.subject, "Telecom Billing Tutorial");Book2.book_id = 6495700;/* 通過(guò)傳 Book1 的地址來(lái)輸出 Book1 信息 */printBook( &Book1 );/* 通過(guò)傳 Book2 的地址來(lái)輸出 Book2 信息 */printBook( &Book2 );return 0; } void printBook( struct Books *book ) {printf( "Book title : %s\n", book->title);printf( "Book author : %s\n", book->author);printf( "Book subject : %s\n", book->subject);printf( "Book book_id : %d\n", book->book_id); }《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀
總結(jié)
以上是生活随笔為你收集整理的对C语言 结构指针变量做函数的参数 结构作为函数的参数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 对C语言 结构数组 指向结构变量的指针
- 下一篇: typedef VS #define —