美文网首页
2019-08-28(二级指针和二维数组)

2019-08-28(二级指针和二维数组)

作者: 1墨家巨子 | 来源:发表于2019-08-28 10:57 被阅读0次

一个二级指针**p和二维数组arr

    **p 和 arr 不等价    
   (*p)[N]和arr[][N]等价

指针数组

 char *p[3]={"hello","world","apple"};
  数组名是p,数组中存储了三个元素,每个元素都是指针。
  p+1,p移动了4个字节。 

code

/***********************************
*****   二维数组每行求和      ******
************************************/
void arr_test(int (*p)[N],int len_r){
   if(NULL==p){
       return -1;
   }
  int i,j;
  int sum_r=0;
  for(i=0;i<len_r;i++){
      for(j=0;j<N;j++){
          sum_r=sum_r+*(p[i]+j);
      }
      printf("%d\n",sum_r);
      sum_r=0;
  }
}
主程序
#define N 3
int main(void)
{
int arr[3][3]={3,2,1,3,2,1,3,2,1};
int len_r=sizeof(arr)/sizeof(arr[0]);
arr_test(arr,len_r);
   return 0;
}

/************************************
*二维数组,字符串冒泡排序排序*
*************************************/
int sort_arr( char (*p)[5],int row){
   char arr[N];
   int i,j;
   for(i=0;i<row;i++){
     printf("%s ",p[i]);
   }
   printf("\n");
   for(i=0;i<row;i++){
       for(j=0;j<row-i-1;j++){
          if(strcmp(p[j],p[j+1])==1){
              strcpy(arr,p[j]);
              strcpy(p[j],p[j+1]);
              strcpy(p[j+1],arr);
          }
       }
}
   for(i=0;i<row;i++){
     printf("%s ",p[i]);
   }
   return 0;
}
主函数
int main(void)
{
   char arr[4][5]={"efbc","acba","brt","dac"};
   int row=sizeof(arr)/sizeof(arr[0]);
   sort_arr(arr,row);
   return 0;
}

相关文章

网友评论

      本文标题:2019-08-28(二级指针和二维数组)

      本文链接:https://www.haomeiwen.com/subject/rekpectx.html