9.9 指针数组、指针的指针、main函数参数、小结

news2024/11/26 17:41:28

9.9 指针数组、指针的指针、main函数参数、小结

  • 一.指针数组概念回顾
  • 二.指向指针的指针
  • 三.指针数组做main函数形参
  • 四.小结
    • 1.指针数据类型小结表:
    • 2.指针运算小结
      • 2.1 指针变量的加减
      • 2.2 指针变量的赋值
      • 2.3 指针变量可以为空值,表示不指向任何变量
    • 3.void *型指针 :万能型指针变量,也就是 能够指向任意数据类型
    • 4.总结

一.指针数组概念回顾

一个数组,其元素均为指针类型数据,称为指针数组。 换句话说:指针数组中每一个元素都是指针变量。

指针数组的定义形式:
类型标识符 *数组名[数字长度说明]
int *p[4]; //每个数组元素都可以看成是一个指针变量,都可以指向 一个整形普通变量。

数组指针 int (*p)[4]; 这是指向一维数组的指针变量。也就是说,塔首先是一个指针变量。

int main()
{
    cha *pName[] = {"C++","JAVA","PYTHON","GO","CSharp"};  //指针数组
    int is1 = sizeof(pName);     //每个指针变量战4个字节,有5个元素,所以一共占20个字节;   20
    int isize = sizeof(pName) / sizeof(pName[0]);     //20/4 = 5;  表示pName中有5个元素;pName能引用的下标就是[0]-[4]
    int i;

    char *p2 = "JAVA";   //把字符串的首地址赋给指针
                                    ==//p2 == pName[1] 下图1==
    for(i = 0;i < isize;i++)
    {
        printf("pName[%d] = %s\n",i,pName[i]);
    }
    printf("------------------\n");

    char *ptemp;
    ptemp = pName[0];   //ptemp指向"C++"
    pName[0] = pName[1]; //pName[0]指向了"JAVA"
    pName[1] = ptemp;    //pName[1]指向"C++"   ==//下图2==
    return 0;
}

在这里插入图片描述
在这里插入图片描述

二.指向指针的指针

指向指针的指针:用来指向指针变量的 变量,简称”指向指针的指针“

int main()
{
    char **p;   //定义了一个指向 字符串指针变量的  指针变量。
    int **P;   //定义了一个指向 整型指针变量的 指针变量

    //*(*p);   //表示 指针变量p  是 指向一个 指针变量,*p 是p所指向的  指针变量

    //int ***p;

    char *pp;  //定义一个指向指针的指针
    pp = &pName[0];  //*pp就是pp所指向的指针,也就是pName[0];
    printf("pp = %s",pp);
    printf("------------------\n");

    int abc = 5;
    int *pabc = &abc;    //指向整形数据的指针
    int **ppabc = &pabc; //指针  指针的指针
    printf("abc = %d\n",abc);
    printf("abc = %d\n",*pabc);
    printf("abc = %d\n",**ppabc);  // **ppabc 等价于 pabc,所以 **ppabc 等价于abc
    return 0;
}

在这里插入图片描述

三.指针数组做main函数形参

指针数组有个重要应用:能够做main函数参数

int main(
int argc,        //整型 ,是argv指针数组的元素个数
char *argv[]  //指针数组  ,argv[0]保存的是 当前可执行文件的完整路径文件名
)
{


    return 0;
}

四.小结

1.指针数据类型小结表:

在这里插入图片描述

2.指针运算小结

2.1 指针变量的加减

p++;p–
int *p;1000;1004

2.2 指针变量的赋值

int *p = 1000;  //不可以,不能直接赋值数字,不要认为可以将地址1000赋值给p,只能将变量已经分配的地址赋值给指针变量;
int a;
int *p = &a;

2.3 指针变量可以为空值,表示不指向任何变量

int *p = NULL;  //NULL 就是整数0,就是使p指向地址为0的单元;
                        //系统会保证地址为0的这个单元不存放有效数据

if(p ==NULL)
{
    p = &a;
}

3.void *型指针 :万能型指针变量,也就是 能够指向任意数据类型

//*p;

int a = 3;
int *p = &a;

flot bf= 56.f;
float *pf = &bf;

//p = (int *)pf;   
void *pwn = NULL;
pwn = p;
pwn = pf;

pf = (float *)pwn;

4.总结

优点:效率高;
缺点:太过灵活

整理至https://appd872nnyh9503.pc.xiaoe-tech.com/index的笔记

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1492946.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OSI 的七层模型

OSI七层模型 一般指开放系统 互连参考模型 (Open System Interconnect 简称OSI) 是国际标准化组 织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系 统提供了一种功能结构的框架。 应用层&#xff1a;各种应用程序协议&#xff0c;比…

Oracle.xs.dll‘ for module DBD::Oracle: load_file:找不到指定的模块

安装Ora2pg时,碰到 异常现象 D:\ProgramFiles\ora2pg>ora2pg -t show_report --estimate_cost -c ora2pg_conf.dist install_driver(Oracle) failed: Cant load D:/ProgramFiles/strawberry/perl/site/lib/auto/DBD/Oracle/Oracle.xs.dll for module DBD::Oracle: load_fil…

FedAsync Asynchronous Federated Optimization

文章目录 IntroductionMethodologyConvergence analysisExperiments Introduction 联邦学习有三个关键属性: 不频繁的任务激活。对于弱边缘设备&#xff0c;学习任务只在设备空闲、充电、连接非计量网络时执行.沟通不频繁。边缘设备和远程服务器之间的连接可能经常不可用、缓…

基于SpringBoot+MYSQL的网页时装购物系统

目录 1、 前言介绍 2、主要技术 3、系统流程分析 3.1、系统登录流程图 3.2、添加信息流程图 3.3、删除信息流程图 4、系统体系结构 4.1、时装购物系统的结构图 4.2、登录系统结构图 4.3、时装购物系统结构图 5、数据库设计原则 5.1、管理员信息属性图 5.2、用户管…

ElevenLabs用AI为Sora文生视频模型配音 ,景联文科技提供高质量真人音频数据集助力生成逼真音效

随着Open AI公司推出的Sora文生视频模型惊艳亮相互联网&#xff0c;AI语音克隆创企ElevenLabs又为Sora的演示视频生成了配音&#xff0c;所有的音效均由AI创造&#xff0c;与视频内容完美融合。 ElevenLabs的语音克隆技术能够从一分钟的音频样本中创建逼真的声音。为了实现这一…

在nginx 服务器部署vue项目

以人人快速开发的开源项目&#xff1a;renren-fast-vue 为例 注&#xff1a;这里开始认为各位都会使用nginx 打包vue项目 npm run build 测试打包的项目是否可以运行 serve dist 可以正常运行 编译报错请移步到&#xff1a;renren-fast-vue1.2.2 项目编译报错: build g…

SpringCloud微服务-DockerCompose(初识、安装、部署)

DockerCompose&#xff08;初识、安装、部署&#xff09; 文章目录 DockerCompose&#xff08;初识、安装、部署&#xff09;初识DockerCompose&#xff1f;DockerCompose安装DockerCompose部署微服务问题解决&#xff08;重要&#xff01;&#xff01;&#xff01;&#xff09…

C++ 归并排序OJ

目录 1、912. 排序数组 2、LCR 170. 交易逆序对的总数 3、315. 计算右侧小于当前元素的个数 4、493. 翻转对 1、912. 排序数组 思路&#xff1a;本次使用归并排序 &#xff0c;快速排序相当于二叉树的前序遍历&#xff0c;而归并排序相当于后序遍历。 归并排序是一种有效的…

【Java设计模式】三、简单工厂、工厂方法模式、抽象工厂模式

文章目录 0、案例&#xff1a;咖啡屋1、简单工厂模式 静态工厂&#xff08;不属于23种之列&#xff09;2、工厂方法模式3、抽象工厂模式4、简单工厂模式 配置文件解除耦合5、JDK源码中对工厂模式的应用 0、案例&#xff1a;咖啡屋 模拟咖啡店点餐。咖啡有多种&#xff0c;抽…

vue3+element plus 实现百度地图显示路径

添加依赖 <!-- index.html --><script type"text/javascript" src"//api.map.baidu.com/getscript?v3.0&akyI6kBeC9G4LntEWXklE2iNHwRUrmFEQc"></script><script type"text/javascript" src"//api.map.baidu.co…

【vue/组件封装】封装一个带条件筛选的搜索框组件(多组条件思路、可多选)详细流程

引入&#xff1a;实现一个带有筛选功能的搜索框&#xff0c;封装成组件&#xff1b; 搜索框长这样子&#xff1a; 点击右侧筛选图标后弹出层&#xff0c;长这样子&#xff1a; 实际应用中有多组筛选条件&#xff0c;这里为了举栗子就展示一组&#xff1b; 预览&#xff1a;…

【小白学机器学习7】相关系数R,决定系数R2和SST=SSR+SSE, 离差,偏差,方差,标准差,变异系数,标准误。

目录 1 各种数据指标&#xff0c;分类整理 1.0 关于数据/值有3种 1.1 第1类&#xff1a;描述一堆数据特征的指标&#xff1a;集中度&#xff0c;离散度&#xff0c;形状特征 1.2 第2类&#xff1a;判断预测y值和观测值差距的指标 1.3 第3类&#xff1a;描述误差的各种指标…

给定长度为n的数组a,每一次操作可以使相邻两个元素都+1或者-1,可以进行任意次操作,求最终能否使数组非递减

题目 思路&#xff1a; #include <bits/stdc.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second #define lson p << 1 #define rson p << 1 | 1 const int maxn 1e6 5, inf 1e18, maxm 4e4 5, …

矩阵爆破逆向-条件断点的妙用

不知道你是否使用过IDA的条件断点呢&#xff1f;在IDA进阶使用中&#xff0c;它的很多功能都有大作用&#xff0c;比如&#xff1a;ida-trace来跟踪调用流程。同时IDA的断点功能也十分强大&#xff0c;配合IDA-python的输出语句能够大杀特杀&#xff01; 那么本文就介绍一下这个…

K线实战分析系列之十八:十字线——判断行情顶部的有效信号

K线实战分析系列之十八&#xff1a;十字线——判断行情顶部的有效信号 一、十字线二、十字线总结三、三种特殊十字线四、长腿十字线五、墓碑十字线六、蜻蜓十字线七、特殊十字线总结 一、十字线 重要的反转信号 幅度较大的下跌&#xff0c;出现一根十字线&#xff0c;正好是在…

配置化脚手架cli工具开发实践

背景 我们服务于政务行业&#xff0c;正在打造一个集代码开发、数据集成、应用管理、一体化运维监控的应用支撑平台。 以此为导向&#xff0c;作为开发的第一步&#xff0c;代码工程创建应当为后续的集成、管理及监控等服务。所以区别于一般的cli工具&#xff0c;我们要做的工…

x6.js 流程图绘制笔记,常用函数

官方参考网站如下&#xff1a;https://antv-x6.gitee.io/zh/docs/tutorial/about 安装x6 输入以下命令 npm install antv/x6 --save 引用插件代码如下&#xff1a; import { Graph } from antv/x6; 创建绘制区域 this.guiX6 new Graph({container: document.querySelect…

相机恢复,这几个方法很重要!

“我的相机用了才不到一年&#xff0c;现在不知道是什么原因&#xff0c;有一些拍摄的图片找不到了&#xff0c;有什么方法可以恢复丢失的照片吗&#xff1f;” 对于热爱记录生活的用户来说&#xff0c;相机出现问题或相机数据丢失&#xff0c;都是一件很让人难过的事情。 在使…

文件上传{session文件包含以及条件竞争、图片文件渲染绕过(gif、png、jpg)}

session文件包含以及条件竞争 条件&#xff1a; 知道session文件存储在哪里 一般的默认位置&#xff1a; /var/lib/php/sess_PHPSESSID /var/lib/php/sessions/sess_PHPSESSID /tmp/sess_PHPSESSID /tmp/sessions/sess_PHPSESSID ####在没做过设置的情况下一般都是存储在/var…

基于Harris角点的室内三维全景图拼接算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1Harris角点检测原理 4.2 Harris响应函数 4.3 角点检测与筛选 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 dirs datasheet/;% 定义…