Ⅰ c語言數組的地址傳遞和值傳遞
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語言中如何用gets();語句來接收一個二維數組
gets從標准輸入設備讀字元串函數。可以無限讀取,不會判斷上限,以回車結束讀取,所以程序員應該確保buffer的空間足夠大,以便在執行讀操作時不發生溢出。從stdin流中讀取字元串,直至接受到換行符或EOF時停止,並將讀取的結果存放在buffer指針所指向的字元數組中。換行符不作為讀取串的內容,讀取的換行符被轉換為『 』空字元,並由此來結束字元串。
因為gets函數是以換行符為分隔,所以用一層循環即可讀取一個二維數組。對於每行字元串,使用sscanf讀取每個數。
例如:
chars[100];
inta[3][3],i;for(i=0;i<3;i++){
gets(s);
sscanf(s,"%d%d%d",s[i],s[i]+1,s[i]+2);
}
Ⅲ 請教c語言中形參是數組名這個數組名是地址常量那麼怎麼接收實參數組名
實參是數組名,即一個地址,形參是數組名,所接收的同樣是一個地址,就是所謂的傳址調用。靠傳遞地址來實現對參數的調用。