當前位置:首頁 » 編程語言 » c語言結構體做函數參數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言結構體做函數參數

發布時間: 2022-12-26 18:27:26

A. c語言中,結構體作為函數參數傳遞,詳解

1.可以把結構體作為參數啊,
2.不去取地址的意思,是引用的意思,函數執行時修改L的值,就直接的修改了實參的值,相當於地址傳遞了。
3.真正調用的時,如下:
SqList
tempStruct;
InitList_Sq(tempStruct)
這樣就可以了。
呵呵

B. 有關C語言中結構體變數做函數參數的問題

其實,結構名就是一個變數,由於你的形參和你的實參取名是一樣的。而且對於形參肯定會變
實參不會變。所以,你中間的maxA變數,其實是子函數的形參變了。但是你的實參沒變
因此結果沒變
改,對於子函數中,你在void Max_Element_Find(struct Max_Element* maxA,double *A,int n)

Max_Element_Find(&maxA,A,n);這樣就好了

C. 關於c語言中的結構體數組作為函數參數傳遞的

1、結構體數組傳給指針,實質上是不可能的,本質上傳的是數組首地址,根據偏移來操作數組,這樣看起來好像是真在操作數組一樣。就和普通指針一樣使用,只不過它是結構體數組。
2、常式:

typedefstructStudent
{
charname[10];
intage;
}Student;
#defineLEN10
//printallStudentinfomation
voidfun(Student*pStu,intlen)
{
inti;
for(i=0;i<len;++i)
{
printf("%s %d",pStu[i].name,pStu[i].age);
}
}
intmain()
{
Studentstu[LEN];
fun(stu,LEN);

}

D. 關於C語言結構體指針做函數形參的問題

fun函數的第二個參數之所以用指針,就是為了能把函數裡面對這個參數做的改動保存下來
而你如果把*s=a[p];改成s=&a[p];效果相當於,改了s的值,使其不再指向參數(函數
外部變數
m)的地址,雖然*s的值是正確的,但實際m的值則沒有改變,所以在外面輸出的時候,結果和預期不一致了
s=&a[p];這個操作本身沒有問題