數組作為形式參數,數組的大小、長度


#include <stdio.h>
#include <stdlib.h>
//第一個參數表示的是地址,第二個參數表示的是數組的長度
//注意數組的長度超過數組的元素的時候,其中數組空余的地址全部由系統自動用0進行補充。
void arrypoint(int datas[], int ent ){          //注意在將數組作為函數的形參的時候,此時數組的中闊號中的內容沒有意義,中括號僅僅表示該參數為數組,真正意義上是表示數組的地址。
                                                         //所以占用的字節為數組的類型的字節,並不是數組的總的占用的字節,例如 int datas[]表示的便是數組的類型為int類型地址占用的字節數為4個字節
                                                      //為了知道數組的長度通常采用的是再進行傳輸一個參數,再傳參的時候便計算數組的長度。才將結算的結果作為參數進行傳輸。
                                                  //再windows系統中通常用四字節表示數組的地址,再Linux的環境中通常采用的是8個字節表示數組。
int i;
printf("datas數組的中總長度:%d\n",sizeof(datas)); // 此處是求數組的大小,並不是求解數組的長度,這里的大小與數組的類型有關,與數組中的元素的個數無關
printf("int類型占用的字節的個數:%d\n",sizeof(int));
for(i=0;i<ent;i++){

printf("%d",datas[i]);
}
}
void sss(){ //注意帶參數的函數不能和不帶參數的函數名相同
printf ("系統");
}
void ss1(int a, int b, char c){ //帶有三個參數的函數
printf("a=%d,b=%d,c=%c\n",a,b,c);
}
int main()
{ int arry[3]={1,3,4}; // 該數組已經進行了完全初始化。

printf("arry數組中元素的個數為:%d\n",sizeof(arry)/sizeof(arry[0]));// 計算數組arry的數組的元素的個數

sss();
ss1(arry[0],arry[1],'c');
//將數組與函數進行聯系
arrypoint(arry,sizeof(arry)/sizeof(arry[0]));//在將數組作為形參傳參的時候,直接添加數組的名字即可,不用帶上中括號
//數組是連續的,所以元素的第一個索引的地址也表示元該數組的地址
//arrypoint(&arry[0],sizeof(arry)/sizeof(arry[0]));//注意只能是元素的首地址表示數組的地址,因為數組的地址的指向也就是數組中第一個元素的地址,注意與上面的方式進行對比。

return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM