指针数组,排序改变的是指针的指向
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void printMyArray11(char **myArray,int num)
{
int i = 0;
for (i = 0; i < num; i++)
{
//printf("%s \n",myArray[i]);
printf("%s \n", *(myArray + i));
}
}
void sortMyArray11(char **myArray,int num)
{
int i = 0, j = 0;
char *tmp = NULL;
//排序
for (i = 0; i < num; i++)
{
for (j = i + 1; j < num; j++)
{
if (strcmp(myArray[i], myArray[j]) > 0)
{
tmp = myArray[i];
myArray[i] = myArray[j];//注意 改变的是指针的指向
myArray[j] = tmp;
}
}
}
}
int main()
{
int i = 0, j = 0;
int num = 0;
char *tmp = NULL;
//数组,数组中每个元素是指针 指针数组
char *myArray[] = {"aaaa","bbbb","cccc","11111","2222222"};
//打印
num = sizeof(myArray)/sizeof(myArray[0]);
//num = sizeof(myArray) / sizeof(*myArray);
printf("排序之前 \n");
//for (i = 0; i < num; i++)
//{
// //printf("%s \n",myArray[i]);
// printf("%s \n", *(myArray + i));
//}
printMyArray11(myArray,num);
//排序
/*for (i=0;i<num;i++)
{
for (j=i+1;j<num;j++)
{
if (strcmp(myArray[i],myArray[j])>0)
{
tmp = myArray[i];
myArray[i] = myArray[j];
myArray[j] = tmp;
}
}
}*/
sortMyArray11(myArray, num);
printf("排序之后 \n");
for (i = 0; i < num; i++)
{
//printf("%s \n",myArray[i]);
printf("%s \n", *(myArray + i));
}
printf("hello... \n");
return 0;
}