二级指针做输入的模型002

 

 

#include <stdio.h>
#include <string.h>
void printfmyArray2(char myArray[10][30], int num)
{
    int i;
    for(i = 0; i < num; i++)
    {
        //printf("%s \n", myArray[i]);
        printf("%s \n", *(myArray+i));
    }
}
void sortMyArray2(char myArray[10][30], int num)
{
    int i, j;
    char tmpBuf[30];
    //排序
    for(i = 0; i < num; i++)
    {
        for(j = i; j <num ; j++)
        {
            if(strcmp(myArray[i], myArray[j]) > 0)
            {
                strcpy(tmpBuf,myArray[i]); //交换的是内存块
                strcpy(myArray[i], myArray[j]);
                strcpy(myArray[j], tmpBuf);
            }
        }
    }
}

int main(void)
{
    int i = 0, j = 0;
    int num = 0;
    char muBuf[30];
    char tmpBuf[30];
    char myArray[10][30] = {"aaaaaa", "bbbbbb", "ccccccc", "111111"};
    
    //myArray:编译器只会关心:有10行,每行30列。。。。干什么?myArray+1  指针的步长为多少?多维数组的本质
    {
        int len1 = sizeof(myArray);
        int len2 = sizeof(myArray[0]);
        num = len1/len2;
        printf("len1: %d ,len2 : %d ,num : %d\n", len1, len2,num);
    }
    num = 4;
    printf("排序之前\n");
    printfmyArray2(myArray, num);
    sortMyArray2(myArray, num);

    printf("排序之后\n");
    printfmyArray2(myArray, num);
    
    return 0;
}

 

posted @ 2017-05-01 22:02  Liu_Jing  Views(219)  Comments(0)    收藏  举报