1. 程式人生 > >c語言基礎(3) 陣列和指標作為實參和形參的問題

c語言基礎(3) 陣列和指標作為實參和形參的問題

字串

char a[]="abc";
printf("%s",a);

fgets(a,100, stdin)      //安全的字串輸入函式
printf("%s",a);

scanf("%*[^\n]");                  //兩個scanf清空輸入快取
scanf("%*c");


int 值作為實參    指標作為形參

void xchange1(int *n1,int *n2)      形參
int num1,num2;
xchange1(&num1,&num2)               實參


指標作為實參     指標作為形參

void  print(int *p)                 形參
int *a=NULL;;
print(a);                           實參



陣列作為實參     指標作為形參

void  print(int *p,int size)                   形參             
int a[4];
print(a,4);                                    實參


void cpy(char *first, const char *second)     形參
char a[10]="abc";
char b[10]={};
cpy(b,a);                                      實參



指標作為實參    二級指標作為形參

void xchange1(char **s)      形參
char *p=NULL;
xchange1(&p);                實參


陣列作為實參    陣列作為形參                          陣列做形參的時候一定要帶上陣列的長度

void print(int arr[3][4], int x, int y)    //形參       一定要帶上陣列的長度
int arr[3][4];
print(arr, 3, 4);                           //      實參     
                      
void print(int *arr, int n)                  //形參       一定要帶上陣列的長度
int array[10];
print(arr,10);                                  // 實參


陣列指標
宣告語法:資料型別 (*指標變數名)[組內元素個數];

int (*p)[10];
int (*p)[  ][10];            
	

*(*(二維陣列指標+i)+j) 得到的是第i組第j個元素的值


*(一維陣列+i)  得到資料第i個元素的值

int a[ 10 ];
*(a+1)   =    a[1];