二级指针
2008-03-08 12:28:18 来源:WEB开发网核心提示:二级指针 实例效果与目的 这是一个应用二级指针对字符串排序的程序,程序运行后,二级指针,顺序显示字符串, 程序说明 当一个指针变量指向另一个指针变量时,进入下一轮比较,每一轮把最大的数排到最后较,则形成二级指针,使用二级指针可以在建立复杂的数据结构时提供较大的灵活性
二级指针
实例效果与目的 这是一个应用二级指针对字符串排序的程序。程序运行后,顺序显示字符串。
程序说明 当一个指针变量指向另一个指针变量时,则形成二级指针。使用二级指针可以在建立复杂的数据结构时提供较大的灵活性,能够实现其他语言所难以实现的一些功能。定义二级指针的形式是: 类型标识符**二级指针变量名 定义指针的同时可以对其赋值,然后就可以使用了。 假如定义一个指针数组,则指针数组名就是一个二级指针。用指针数组元素值指向长度同的字符串,操作时可以节省内存空间,而对地址进行操作,提高了运行效率。 冒泡排序的思路是:对n个数据从第1位开始对相信两个数进行比较,并按要求排序(如从小到大)。再比较第2位与第3位,依次处理至最后两个数比较处理完毕。此时,最大的已排到最后,退出比较,进入下一轮比较,每一轮把最大的数排到最后较,至所有的数排列完毕。
制作步骤 1、得到所须处理的字符串: for(i=0;i<N;i++) get(pstr[i]); 2.冒泡排序: void sort(char**p) { int i,j; char *pstr; for(i=0;i<N;i++) for (j=i+1;j<N;j++) if (strcmp(*(p+i),*(p+j))>0) { PRstr=*(p+j); *(p+j)=*(p+i); *(p+i)=pstr; } } 3、显示排序后的结果 for(i=0;i<N;i++) puts(pstr[i]); 4、源代码与注释: #include“stdio.h" #include"string.h" #define LENGTH 30 #define N 10 void sort(char**p) { int i,j; char *pstr; void sort(char**p) {
int i,j; char *pstr; for(i=0;i<N;i++) for (j=i+1;j<N;j++) if (strcmp(*(p+i),*(p+j))>0) { prstr=*(p+j); *(p+j)=*(p+i); *(p+i)=pstr; } } main() { int i; char *pstr[N],s[N][LENGTH]; for (i=0;i<N;i++) pstr[i]=s[i]; printf(" Input %d strings: ",N); for (i=0;i<N;i++) gets(pstr); sort(pstr); printf(" The sorted string are: "); for(i=0;i<N;i++) puts(pstr[i]); return; }
实例效果与目的 这是一个应用二级指针对字符串排序的程序。程序运行后,顺序显示字符串。
程序说明 当一个指针变量指向另一个指针变量时,则形成二级指针。使用二级指针可以在建立复杂的数据结构时提供较大的灵活性,能够实现其他语言所难以实现的一些功能。定义二级指针的形式是: 类型标识符**二级指针变量名 定义指针的同时可以对其赋值,然后就可以使用了。 假如定义一个指针数组,则指针数组名就是一个二级指针。用指针数组元素值指向长度同的字符串,操作时可以节省内存空间,而对地址进行操作,提高了运行效率。 冒泡排序的思路是:对n个数据从第1位开始对相信两个数进行比较,并按要求排序(如从小到大)。再比较第2位与第3位,依次处理至最后两个数比较处理完毕。此时,最大的已排到最后,退出比较,进入下一轮比较,每一轮把最大的数排到最后较,至所有的数排列完毕。
制作步骤 1、得到所须处理的字符串: for(i=0;i<N;i++) get(pstr[i]); 2.冒泡排序: void sort(char**p) { int i,j; char *pstr; for(i=0;i<N;i++) for (j=i+1;j<N;j++) if (strcmp(*(p+i),*(p+j))>0) { PRstr=*(p+j); *(p+j)=*(p+i); *(p+i)=pstr; } } 3、显示排序后的结果 for(i=0;i<N;i++) puts(pstr[i]); 4、源代码与注释: #include“stdio.h" #include"string.h" #define LENGTH 30 #define N 10 void sort(char**p) { int i,j; char *pstr; void sort(char**p) {
int i,j; char *pstr; for(i=0;i<N;i++) for (j=i+1;j<N;j++) if (strcmp(*(p+i),*(p+j))>0) { prstr=*(p+j); *(p+j)=*(p+i); *(p+i)=pstr; } } main() { int i; char *pstr[N],s[N][LENGTH]; for (i=0;i<N;i++) pstr[i]=s[i]; printf(" Input %d strings: ",N); for (i=0;i<N;i++) gets(pstr); sort(pstr); printf(" The sorted string are: "); for(i=0;i<N;i++) puts(pstr[i]); return; }
- ››指针实现交换两个数字的大小
- ››指针实现交换两个数字的大小
- ››指针数组与数组指针
- ››指针运算符与指针表达式
- ››指针变量的定义与引用
- ››指针与数组
- ››指针数组
- ››指针的地址分配
- ››指针与指针变量
- ››指针与函数的关系
- ››二级指针
- ››指针专题
更多精彩
赞助商链接