首页 > 代码库 > 二级指针的应用
二级指针的应用
简单应用:对指针数组中的字符串进行排序(升序);
1、交换指针变量的值;
(1)、代码如下:
#include<stdio.h> #include<string.h> void sortByA(char **str, int count); void sortByA(char **str, int count){ int i; int j; char *tmp; for(i = 0; i < count; i++){ for(j = i+1; j < count; j++){ if((strcmp(*(str+i), *(str+j))) > 0){ //交换的是指针变量; tmp = *(str+i); *(str+i) = *(str+j); *(str+j) = tmp; } } } } int main(void){ char *array[] = {"aaaa", "bbbb", "ccccc", "dddd"}; int count = sizeof(array)/sizeof(array[0]); int i; sortByA(array, count); for(i = 0; i < count; i++){ printf("%s ", array[i]); } printf("\n"); }
(2)、运行结果:
(3)、模型分析:
指针变量的交换:中间借助一个临时的指针变量即可;
2、交换空间的值
(1)、代码如下:
#include<stdio.h> #include<string.h> void sortByA(char (*p)[30], int count); void sortByA(char (*p)[30], int count){ int i; int j; char tmp[30]; for(i = 0; i < count; i++){ for(j = i+1; j < count; j++){ if((strcmp(p[i], p[j]) > 0)){ strcpy(tmp, p[i]); //内存块的拷贝 strcpy(p[i], p[j]); strcpy(p[j], tmp); } } } } int main(void){ char myArray[][30] = {"aaaaa", "bbbbb", "cccc", "dddddd"}; int i; int count; count = sizeof(myArray)/sizeof(myArray[0]); sortByA(myArray, count); for(i = 0; i < count; i++){ printf("%s ", myArray[i]); } printf("\n"); return 0; }
(2)、运行结果:
(3)、模型分析:
本文出自 “wait0804” 博客,请务必保留此出处http://wait0804.blog.51cto.com/11586096/1874769
二级指针的应用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。