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

指针数组

  在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. VS2013中Nuget程序包管理器控制台使用入门(一)-准备环境(原创)

    准备环境: 1.打开VS2013IDE集成开发环境. 2.新建一个Asp.net Mvc的项目,比如命名为:MvcApplication1 3.打开 菜单"工具"->&quo ...

  2. Linux移植之内核启动过程start_kernel函数简析

    在Linux移植之内核启动过程引导阶段分析中从arch/arm/kernel/head.S开始分析,最后分析到课start_kernel这个C函数,下面就简单分析下这个函数,因为涉及到Linux的内容 ...

  3. Sonar配置与使用

    一.前置条件: 安装工具如下: JDK MySql服务器 SonarQube SonarScanner 从官网下载安装包进行安装,具体安装步骤略 二.配置 MySql配置: 打开SQL,创建sonar ...

  4. 78k的text 文件,输出到textbox 竟然用了20几秒的原因

    开始查资料以为是io读取的,磁盘速度慢的之类的,后来一想,text 又不是几十万条数据,才那么两千行,咋回事. 原来是循环中不停的修改textbox值导致的. 总结:  比较大的运算,特别是大的循环, ...

  5. docker从私有镜像库pull/push镜像问题:Error response from daemon: Get https://xxxx.com/: x509: certificate signed by unknown authority

    docker从私有镜像库pull/push镜像问题:Error response from daemon: Get https://harbor.op.xxxx.com/v2/: x509: cert ...

  6. 需求文件requirements.txt的创建及使用

    pip freeze >requirements.txt pip install -r requirements.txt

  7. JSP脚本元素(声明 %! 表达式 %= 脚本 %)

    JSP脚本元素包括声明.表达式.脚本 声明(declaration):用于在JSP页面中声明合法的变量和方法.以“<%!”开始,以“%>”结束. 在JSP页面中,一个声明可以出现在任何地方 ...

  8. Laravel Session() 失效的问题

    之前因为自己自定义了后台的路由,然后路由定义的乱七八糟的. 突然发现session失效了,记录一下,避免后者遇坑. 路由组统一通过web中间件或者存在于一个中间件中 protected $middle ...

  9. UML 类图几种关系的总结(图文并茂、案例详解)

    听语音 | 浏览:2831 | 更新:2017-03-01 13:06 1 2 3 4 5 6 7 分步阅读 在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(R ...

  10. canvas 实现圆环效果

    var race = document.getElementById('race'); var cxt = race.getContext('2d'); var ang = 0; var speed ...