數組作為參數是按地址傳遞的

創新互聯是一家專業提供河東企業網站建設,專注與做網站、成都做網站、成都h5網站建設、小程序制作等業務。10年已為河東眾多企業、政府機構等服務。創新互聯專業網站建設公司優惠進行中。
數組名就是數組的首地址。因此在數組名作函數參數時所進行的傳送只是地址的傳送, 也就是說把實參數組的首地址賦予形參數組名。形參數組名取得該首地址之后,也就等于有了實在的數組。實際上是形參數組和實參數組為同一數組,共同擁有一段內存空間。
c語言中、數組在函數中的傳遞可以數組元素的傳遞!還有就是數組名的傳遞!其實、數組名的傳遞類似指針!就是把數組的元素的首地址傳到形參的!
如果是不是傳地址,那會在函數中重新定義兩個變量分別等于兩個參數的值,對新定義的兩個變量進行操作。和原來的兩個變量無關。
如果是傳地址,那就是把兩個數的地址傳到函數中,對兩個地址中的內容進行操作。所以會改變兩個數的值。
一般如果要通過函數來改變參數的值,C都是要用傳地址的,C++還可以用引用。比如scanf()函數,因為要把輸入的值傳遞給參數,所以要加取地址符號.而printf就不用
1.值傳遞就不寫了,顧名思義就是把當前的值傳到下一個函數中,變量本身的沒有發生任何變化
2.指針傳遞,把當前變量指針傳到下一個函數,在另外函數里邊修改指針的值會修改當前變量值
#include stdio.h
void func(int *p){
? ? ? ? ? ? *p = 9;
? ? ? ? ? ? return;
}
void swap(int *a, int *b){ //交換兩個變量的值
? ? int temp = *a;
? ? *a = *b;
? ? *b = temp;
}
int main(void){
? ? ? ? int a = 0;
? ? ? ? func(a); //要修改一個變量,把他的地址傳過去
? ? ? ? printf("%d",a);//9
? ? ? int b = 3;int c = 4;
? ? ? ? swap(b,c);
? ? ? ? return 0;
}
當前標題:c語言函數數組地址傳遞 C語言函數傳地址
標題鏈接:http://www.js-pz168.com/article18/hiogdp.html
成都網站建設公司_創新互聯,為您提供網站制作、品牌網站建設、關鍵詞優化、網站排名、網站維護、網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯