黑马程序员技术交流社区

标题: 对指针数组进行排序,指针数组作为函数参数的问题 [打印本页]

作者: wangjunjun    时间: 2014-7-27 13:15
标题: 对指针数组进行排序,指针数组作为函数参数的问题
指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称

//===========================================

#include "stdio.h"
#include "string.h"
#include "stdlib.h"

int printAarray(char **  pArray, int num)
{
        int i = 0;
       
        if (pArray == NULL)
        {
                return -1;
        }

        for (i=0; i<num; i++)
        {
                printf("%s \n", pArray[i]);
        }

        return 0;
}

int sortArray(char **pArray, int num)
{
        char *tmp = NULL;
        int i = 0, j = 0;
       
        if (pArray == NULL)
        {
                return -1;
        }
        for (i=0; i<num; i++)
        {
                for (j=i+1; j<num; j++)
                {
                        if (strcmp(pArray[i], pArray[j]) > 0)
                        {
                                //交换的是数组元素 数组元素是指针
                                tmp = pArray[i];
                                pArray[i] = pArray[j];
                                pArray[j] = tmp;
                        }
                }
        }
}
void main()
{
        char *tmp = NULL;
        int i = 0, j = 0;
        //首先考虑它是一个数组,指针数组,====》只不过每一个元素是指针而已。
        //[]优先级高
        //打印数组 排序排序这个数组、、、、指针做函数参数
        char * myArray[] = {"i", "love", "you", "so"};

        printf("排序之前\n");
        printAarray(myArray, 4);

        sortArray(myArray, 4);


        printf("排序之后\n");
        printAarray(myArray, 4);
}

//=============================================

如有问题可相互探讨,可以在帖子下面留言




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2