|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- //
- #include <stdio.h>
- #include <string.h>
- void main()
- {
-
- void sort(char *name[] , int n);
- void print(char *name[], int n);
- int n = 4;
- char *name[] = {"abc", "bcd" , "efh" , "pso"};
-
-
- sort(name,n);
- print(name,n);
-
- }
- void sort(char *name[],int n)
- {
- char *temp;
- int i,j,k;
-
- for( i = 0; i< n-1 ; i++)
- {
- k = i;
-
- for(j = i+1 ; j< n; j++)
- {
- if(strcmp(name[k], name[j]) > 0)
- {
- k =j;
- }
- if(k != j)
- {
- temp = name[i];
- name[i] = name[k];
- name[k] = temp;
- }
- }
- }
-
-
- }
- void print(char *name[] , int n )
- {
- int i;
- for(i = 0; i< n ; i++)
- {
- printf("%s\n", name[i]);
-
- }
- }
复制代码
请问传递到sort 函数里的name不是应该是一个指针数组吗,这样的话里面的元素应该都是地址,那为什么可以用来比较大小还有比较字母顺序呢?谢谢
传递到sort 函数里的name不能理解为指针数组
就只是传了一个数组的起始地址过去,后面你可以用「起始地址+偏移量」的方式来获取数组中的元素。
「起始地址+偏移量」:也就是name[k]这种形式,name是起始地址,k为偏移量
|
评分
-
查看全部评分
|