首页 / 操作系统 / Linux / C++二级指针第一种内存模型(指针数组)
二级指针第一种内存模型(指针数组)
指针的输入特性:在主调函数里面分配内存,在被调用函数里面使用
指针的输出特性:在被调用函数里面分配内存,主要是把运算结果甩出来指针数组 在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
", 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
", 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<iNum; i++)
{
printf("%s
", 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("排序之前
");
printfArr(ArrayStr,4);
sortArrayStr(ArrayStr, 4); printf("排序之后
");
printfArr(ArrayStr,4); system("pause");
} 一维指针数组做函数参数会退化为二级指针本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-07/119796.htm