函式引數呼叫指標 結構體

2021-07-27 08:08:16 字數 850 閱讀 7938

一、函式呼叫指標時

void main(void)

void fun(*p1,*p2)

1、此時函式宣告引數是兩個指標,因此主函式中函式的呼叫引數應該輸入兩個指標,就是a,b的位址。

2、再次強調,需要改變輸入引數的值時函式才需要呼叫該指標,就是說fun(x,y) fun(結構1),需要改變呼叫引數的值時,該引數採用指標表示(此處指想要改變的是普通變數,而不是改變指標變數)

二、函式呼叫結構體

1、結構體、例項、指向結構的指標

結構體的例項相當於乙個變數,讓指標指向該結構體的例項時可以這麼寫

sturct stu;

sturct stu *p1; 申明了指向該結構的指標p1,但是該指標並未初始化,還不能使用

struct stu s1;

p1=&s1; 建立了例項後就可以讓指標指向例項了

或者 struct stu;

struct stu *p1;

p1=(stu*)malloc(sizeof(struct stu)); 此處給指標分配空間,最後記得free

2、函式呼叫

定義時

void fun(stu *p1,stu p2)

main中 stu s1,s2; 建立兩個例項

呼叫時fun(&s1,s2)

這裡有個重點,為啥同樣是例項,兩個申明時乙個是申明指標,乙個就是申明例項呢?答案和本文第一部分函式呼叫指標引數一樣,只有在想改變引數的值時才將引數設為指標型別,否則就是本來的型別。比如例項s1,我的函式f1想要在s1中插入值,就更改了s1,就要申明f1(*s1);我的函式f2想要把s1中的值讀出來,不更改s2,就不需要指標作為引數,就是f2(s1).

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

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

結構體型別指標做函式引數(C

因為用到了這塊,所以轉了一篇文章。設有學生情況登記表如圖所示,用選擇排序法對該錶按從小到大進行排序。學生情況登記表 學號num 姓名name 8 性別 年齡age 成績score 101zhangm19 95.6 102zhaom20 89.0 103wangf18 96.5 104shanm20 ...

結構體,結構體指標作為函式引數的應用筆記

1.結構體,結構體指標作為函式引數有何區別 include include struct animal 使用結構體作為引數 浪費記憶體 需要建立結構體 void change struct struct animal cat 函式內部改變需要位址 所以需要指標儲存 void change point...