设为首页 加入收藏

TOP

C++二级指针第一种内存模型(指针数组)
2015-07-16 12:55:02 来源: 作者: 【 】 浏览:3
Tags:二级 指针 第一 内存 模型

二级指针第一种内存模型(指针数组)
指针的输入特性:在主调函数里面分配内存,在被调用函数里面使用
指针的输出特性:在被调用函数里面分配内存,主要是把运算结果甩出来


指针数组


  在C语言C++语言中,数组元素全为指针的数组称为指针数组。一维指针数组的定义形式为:“类型名 *数组标识符[数组长度]”。


  例如,一个一维指针数组的定义:int *ptr_array[10]。


如何理解指针数组


  指针数组是数组元素为指针的数组,其本质为数组。


   例如:*p[2]是指针数组,实质是一个数组,里面的两个元素都是指针 []的优先级比*的优先级高,p先与[]结合,形成数组p[2],有两个元素的数组,再与*结合,表示此数组? ? ? 是指针类型的,每个数组元素相当于一个指针变量。


运用


  指针数组可以作为函数的参量使用,使用方式与普通数组类似。


   指针数组常适用于指向若干字符串,这样使字符串处理更加灵活方便。


 举例:


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


void main()
{
? ? int i = 0, j = 0;
? ? char *tmp = NULL;


? char *ArrayStr[] = {"ccccc", "aaaa", "bbbb","11111"};


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


? //排序


? for (i=0; i<4; i++)
? ? {
? ? ? ? for (j=i+1; j<4; j++)
? ? ? ? {
? ? ? ? ? ? if (strcmp(ArrayStr[i],ArrayStr[j]) > 0)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? tmp = ArrayStr[i];
? ? ? ? ? ? ? ? ArrayStr[i] = ArrayStr[j];
? ? ? ? ? ? ? ? ArrayStr[j] = tmp;
? ? ? ? ? ? }
? ? ? ? }
? ? }


? for (i=0; i<4; i++)
? ? {
? ? ? ? printf("%s \n", ArrayStr[i]);
? ? }
? ?
? ? system("pause");
}


#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int? ? printfArr(char **ArrayStr, int iNum)
{
? ? int i = 0;
? ? for (i=0; i? ? {
? ? ? ? printf("%s \n", ArrayStr[i]);
? ? }
? ? return 0;
}


int sortArrayStr(char **ArrayStr, int iNum)
{
? ? int i = 0, j = 0;
? ? char *tmp = NULL;
? ? //排序


? for (i=0; i<4; i++)
? ? {
? ? ? ? for (j=i+1; j<4; j++)
? ? ? ? {
? ? ? ? ? ? if (strcmp(ArrayStr[i],ArrayStr[j]) > 0)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? tmp = ArrayStr[i];
? ? ? ? ? ? ? ? ArrayStr[i] = ArrayStr[j];
? ? ? ? ? ? ? ? ArrayStr[j] = tmp;
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? return 0;
}


//二级指针第一种内存模型
void main()
{
? ? char *ArrayStr[] = {"ccccc", "aaaa", "bbbb","11111"};


? printf("排序之前\n");
? ? printfArr(ArrayStr,4);
? ? sortArrayStr(ArrayStr, 4);


? printf("排序之后\n");
? ? printfArr(ArrayStr,4);


? system("pause");
}


  一维指针数组做函数参数会退化为二级指针


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++二级指针第二种内存模型(二维.. 下一篇Python2 ----函数字典的使用

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: