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

指针数组

  在C语言C++语言中,数组元素全为指针的数组称为指针数组。一维指针数组的定义形式为:“类型名 *数组标识符[数组长度]”。
  例如,一个一维指针数组的定义:int *ptr_array[10]。
 
  如何理解指针数组
 
   指针数组是数组元素为指针的数组,其本质为数组。
   例如:*p[2]是指针数组,实质是一个数组,里面的两个元素都是指针 []的优先级比*的优先级高,p先与[]结合,形成数组p[2],有两个元素的数组,再与*结合,表示此数组      是指针类型的,每个数组元素相当于一个指针变量

运用

   指针数组可以作为函数的参量使用,使用方式与普通数组类似。
   指针数组常适用于指向若干字符串,这样使字符串处理更加灵活方便。

 举例:

#include "stdio.h"
#include "stdlib.h"
#include "string.h" void main()
{
int i = , j = ;
char *tmp = NULL; char *ArrayStr[] = {"ccccc", "aaaa", "bbbb",""}; for (i=; i<; i++)
{
printf("%s \n", ArrayStr[i]);
} //排序 for (i=; i<; i++)
{
for (j=i+; j<; j++)
{
if (strcmp(ArrayStr[i],ArrayStr[j]) > )
{
tmp = ArrayStr[i];
ArrayStr[i] = ArrayStr[j];
ArrayStr[j] = tmp;
}
}
} for (i=; i<; 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 = ;
for (i=; i<iNum; i++)
{
printf("%s \n", ArrayStr[i]);
}
return ;
} int sortArrayStr(char **ArrayStr, int iNum)
{
int i = , j = ;
char *tmp = NULL;
//排序 for (i=; i<; i++)
{
for (j=i+; j<; j++)
{
if (strcmp(ArrayStr[i],ArrayStr[j]) > )
{
tmp = ArrayStr[i];
ArrayStr[i] = ArrayStr[j];
ArrayStr[j] = tmp;
}
}
}
return ;
} //二级指针第一种内存模型
void main()
{
char *ArrayStr[] = {"ccccc", "aaaa", "bbbb",""}; printf("排序之前\n");
printfArr(ArrayStr,);
sortArrayStr(ArrayStr, ); printf("排序之后\n");
printfArr(ArrayStr,); system("pause");
}

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

C++二级指针第一种内存模型(指针数组)的更多相关文章

  1. C++二级指针第二种内存模型(二维数组)

    C++二级指针第二种内存模型(二维数组) 二维数组 二维数组本质上是以数组作为数组元素的数组,即“数组的数组”. 定义 类型说明符 数组名[常量表达式][常量表达式] 例如: float a[3][4 ...

  2. 深入理解C语言-二级指针三种内存模型

    二级指针相对于一级指针,显得更难,难在于指针和数组的混合,定义不同类型的二级指针,在使用的时候有着很大的区别 第一种内存模型char *arr[] 若有如下定义 char *arr[] = {&quo ...

  3. C++二级指针第三种内存模型

    #include "stdio.h" #include "stdlib.h" #include "string.h" void main() ...

  4. C语言重点——指针篇(一文让你完全搞懂指针)| 从内存理解指针 | 指针完全解析

    有干货.更有故事,微信搜索[编程指北]关注这个不一样的程序员,等你来撩~ 注:这篇文章好好看完一定会让你掌握好指针的本质 C语言最核心的知识就是指针,所以,这一篇的文章主题是「指针与内存模型」 说到指 ...

  5. C语言 二级指针内存模型①

    //二级指针第一种内存模型 #include<stdio.h> #include<stdlib.h> //说明:①:类似于int a[5]={0},数组名a是一维数组a中首元素 ...

  6. C语言 二级指针内存模型混合实战

    //二级指针内存模型混合实战 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #i ...

  7. C语言 二级指针内存模型②

    //二级指针第二种内存模型 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #incl ...

  8. c语言二级指针内存模型

    第一种: 指针数组作为输入参数 char *myArray[] = {"aaaaaa", "ccccc", "bbbbbb", " ...

  9. DirectX11 With Windows SDK--29 计算着色器:内存模型、线程同步;实现顺序无关透明度(OIT)

    前言 由于透明混合在不同的绘制顺序下结果会不同,这就要求绘制前要对物体进行排序,然后再从后往前渲染.但即便是仅渲染一个物体(如上一章的水波),也会出现透明绘制顺序不对的情况,普通的绘制是无法避免的.如 ...

随机推荐

  1. mysql分组后将未分组的列合并成行GROUP BY,GROUP_CONCAT

    今天遇到一个问题,消息通知可以同时发送给多个班级,而查询消息通知的时候并不需要根据班级分组,如何把多个班级的名称合并成一行数据追加到消息通知的后面呢 然后就发现了 group_concat: SELE ...

  2. C#读取Excel表中的数据时混合字段部分数据没有

    解决同一列中“字符串”和“数字”两种格式同时存在,读取时,不能正确显示“字符串”格式的问题:set xlsconn=CreateObject("ADODB.Connection") ...

  3. Logback报错 no applicable action for [Encoding], current ElementPath is [[configuration][appender][Encoding]]

    老版本是0.9,移到springboot项目,解决办法,删除xml配置文件节点<Encoding>UTF-8</Encoding>

  4. 进程同步(multiprocess.Lock、multiprocess.Semaphore、multiprocess.Event) day38

    进程同步(multiprocess.Lock.multiprocess.Semaphore.multiprocess.Event) 锁 —— multiprocess.Lock 通过刚刚的学习,我们千 ...

  5. 安装mysql时启动服务出错问题

    mysql安装最后一步 无法启动服务错误 博客分类: IDE问题解析     今天安装mysql程序时候,在安装到最后一步时候,在最后一步却发现无法启动服务,出现这样的提示“cannot create ...

  6. 16.Mysql SQL Mode

    16.SQL Mode及相关问题SQL Mode定义了Mysql支持的SQL语法和数据校验级别,Mysql支持多种SQL Mode.用途: 设置不同的SQL Mode可以对数据进行不同严格程度的校验, ...

  7. myeclipse的安装与配置和JUnit的简单使用

    安装配置 首先根据自己电脑系统选择合适的JDK版本 http://www.oracle.com/technetwork/java/javase/downloads/index.html 这是JDK下载 ...

  8. linux 虚拟机设置

    1.可以用网桥方式 2.可以用一个回环虚拟网卡即可.

  9. SpringMVC学习笔记:表单提交 参数的接收

    SpringMVC可以接收原生form表单和json格式数据 有一个名为Book的model,其中的属性如下: 字符串类型的name,数字类型的price,数组类型的cover,集合类型的author ...

  10. linux文件系统问题:wrong fs type, bad option, bad superblock

    http://blog.itpub.net/26006637/viewspace-1059946/ 报错内容: mount: wrong fs type, bad option, bad superb ...