美文网首页
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