【C++】指针数组与数组指针

2023-05-16

指针数组

        指针数组可以说成是”指针的数组”,首先这个变量是一个数组,其次,”指针”修饰这个数组,意思是说这个数组的所有元素都是指针类型,在32位系统中,指针占四个字节。

定义

        定义一个指针数组,既然是数组,名字就叫arr

char *arr[4] = {"hello", "world", "shannxi", "xian"};

        arr[4]是一个定义的数组。把它对应到对应到内存中,arr是一个在栈区,有四个元素的数组,而每一个元素又是一个指针,所以说它的四个元素各占四个字节,所以变量arr的大小是16个字节。arr+1会跳过四个字节。也就是一个指针的大小 。

数组指针

        数组指针可以说成是”数组的指针”,首先这个变量是一个指针,其次,”数组”修饰这个指针,意思是说这个指针存放着一个数组的首地址,或者说这个指针指向一个数组的首地址。

定义

        定义一个数组指针,既然是指针,名字就叫pa,要给指针加括号。

char (*pa)[4];

        pa是一个指针指向一个char [4]的数组,每个数组元素是一个char类型的变量。既然pa是一个指针,存放一个数组的地址,那么在我们定义一个数组时,数组名称就是这个数组的首地址,那么这二者有什么区别和联系呢?

char a[4];

数组名称和数组指针的区别

        a是一个长度为4的字符数组,a是这个数组的首元素首地址。既然a是地址,pa是指向数组的指针,那么能将a赋值给pa吗?答案是不行的!因为a是数组首元素首地址,pa存放的却是数组首地址,a是char 类型,a+1,a的值会实实在在的加1,而pa是char[4]类型的,pa+1,pa则会加4,虽然数组的首地址和首元素首地址的值相同,但是两者操作不同,所以类型不匹配不能直接赋值,但是可以这样:pa = &a,pa相当与二维数组的行指针,现在它指向a[4]的地址。

char *p=a;   //p是指向数组首元素的指针

        数组名和指针虽都代表数组首元素的地址,但意义不同。把它们分别比作省政府和市政府,数组名相当于省政府,指向首元素的指针代表市政府。如陕西的省政府在西安,而西安市的市政府也在西安,两个政府都在西安,但其代表的意义完全不同。
 ①用sizeof关键字求数组所占的内存是整个数组大小,指针不是。
 ②对数组名取地址时是取得一个代表整个数组的地址,对指针取地址则不然。

指针数组在参数传递时的使用

        指针数组常用在主函数传参,在写主函数时,参数有两个,一个确定参数个数,一个这是指针数组用来接收每个参数(字符串)的地址

int main(int argc, char *argv[])

        不能传递整个数组过去,如果数组很大,这样内存利用率很低,所以应该传递数组的首地址,用一个指针接收这个地址。因此,指针数组对应着二级指针。

void fun(char **pp); //子函数中的形参
fun(char *p[]); //主函数中的实参

数组指针传参时的使用

        数组指针既然是一个指针,那么就是用来接收地址,在传参时就接收数组的地址,所以数组指针对应的是二维数组。

void fun(int (*P)[4]);           //子函数中的形参,指针数组 
a[3][4] = {0};                  //主函数中定义的二维数组
fun(a);                           //主函数调用子函数的实参,是二维数组的首元素首地址

 sizeof(a)=12*4=48
sizeof(p)=4 //(x64系统为8)
        当sizeof用于变量时返回这个变量占用的实际空间的大小。当sizeof用于数组名时,返回整个数组的大小(这里的大小指占用的字节数)。p是一个指针变量,这个变量占用四个字节。
————————————————
来源:https://blog.csdn.net/shayne000/article/details/88554004

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【C++】指针数组与数组指针 的相关文章

  • 【Pandas】相关性分析corrwith与corr

    pandas有两类相关性分析的函数 xff0c 分别是DataFrame的corrwith和Series的corr xff0c 注意这俩不能混用 corrwith用于计算DataFrame中行与行或者列与列之间的相关性 xff0c 而cor
  • 【比赛方案】2019年CCF大数据与计算智能大赛乘用车细分市场销量预测冠军解决方案

    共使用一个lgb模型与一个规则模型进行融合 xff0c 总运行时长约3min 代码全部整合到一个文件里了 xff0c 共约500行 本次比赛初赛有60个车型 xff0c 复赛有82个车型 xff0c 由于初赛时长较长 xff0c 复赛时长较
  • 教你用python高效刷leetcode

    由于Python语法的简洁性 xff0c 用python来刷leetcode往往能用比别的语言更少的代码量AC 但是如果不是对python很熟悉就会比较尴尬了 xff0c 如果有些功能明明有高效的内置方法因为不知道要自己实现 或者不了解其复
  • 解决MMCV CUDA Compiler : not available

    问题描述 xff1a 安装完mmcv full使用mmdetection时 xff0c 提示MMCV CUDA Compiler not available xff0c 发现并未使用GPU 分析解决 xff1a 导致无法使用GPU的原因可能
  • 【LightGBM】feature_importance获取特征重要性

    使用LightGBM feature importance 函数给训练完毕的LightGBM模型的各特征进行重要性排序 feature importance 61 pd DataFrame feature importance 39 fea
  • 遥感影像智能处理比赛收集

    文章目录 概述 x1f4da 竞赛 xff1a 按年度整理202220212020 x1f4e3 x1f525 x1f525 x1f525 持续更新中 x1f525 x1f525 x1f525 概述 近年来遥感影像智能处理比赛逐渐增多 xf
  • 【Markdown】github上如何为markdown文件生成目录

    熟悉markdown都知道可以使用 TOC 自动生成markdown文件的标题目录 xff0c 比如在typora xff0c vscode 需要插件 等本地编辑器中 xff0c 或者在CSDN等网页编辑器中 xff0c 但是github却
  • 【调参】batch_size的选择

    直接上结论 xff1a 当有足够算力时 xff0c 选取batch size为32或更小一些 算力不够时 xff0c 在效率和泛化性之间做trade off xff0c 尽量选择更小的batch size 前期用小batch引入噪声 xff
  • 【Paper】Learning to Resize Images for Computer Vision Tasks

    From 别魔改网络了 xff0c Google研究员 xff1a 模型精度不高 xff0c 是因为你的Resize方法不够好 xff01 知乎 zhihu com paper 2103 09950v2 pdf arxiv org code
  • 【OpenCV】 外接矩形、最小外接矩形、多边形拟合、外接圆

    任务 xff1a 给定这样一张图片求图片中白色区域的外接矩形 最小外接矩形 拟合多边形以及外接圆 1 外接矩形 x y w h 61 cv2 boundingRect points 输入 xff1a 点集 返回值 xff1a 左上角点坐标以
  • Windows柯尼卡打印机驱动安装

    打印机型号 xff1a 柯尼卡 bizhub C300i xff08 打印机机身可见 xff09 1 下载驱动 在柯尼卡驱动官网查找下载打印机驱动 在型号处直接下拉查找自己的型号 xff0c 例如bizhub C300i xff0c 点击搜
  • PyQt开发入门教程

    来源 xff1a PyQt完整入门教程 lovesoo 博客园 cnblogs com 1 GUI开发框架简介 1 1 通用开发框架 electorn xff1a 基于node js xff0c 跨平台 xff0c 开发成本低 xff0c
  • VOC数据集颜色表colormap与代码

    VOC颜色和分类的对于关系 code如下 xff0c 这里提供两个版本 xff0c 一个是list tuple 版本 xff0c 支持直接在opencv的color参数使用 xff1b 另一个是ndarray版返回 list 版 def v
  • 【译】Python3.8官方Logging文档(完整版)

    注 xff1a 文章很长 xff0c 约一万字左右 xff0c 可以先收藏慢慢看哟 01 基础部分 日志是用来的记录程序运行事件的工具 当程序员可以通过添加日志打印的代码来记录程序运行过程中发生的某些事件时 这些事件包含了诸如变量数据在内的
  • OpenCV Scalar value for argument ‘color‘ is not numeric错误处理

    import cv2 cur color 61 np array 128 0 128 astype np uint8 cv2 polylines cvImage ndata isClosed 61 True color 61 cur col
  • COCO格式数据集可视化为框

    使用pycocotools读取和opencv绘制 xff0c 实现COCO格式数据边框显示的可视化 xff0c 可视化前后的示例为 xff1a 代码 xff1a coding utf 8 import os import sys getop
  • 微波遥感(三、SAR图像特征)

    SAR 是主 动式侧视雷达系统 xff0c 且成像几何属于斜距投影类型 因此 SAR 图像与光学图像在成像机理 几何特征 辐射特征等方面都有较大的区别 在进行 SAR 图像处理和应用前 xff0c 需要了解 SAR 图像的基本特征 本文主要
  • 基于Slicing Aided Hyper Inference (SAHI)做小目标检测

    遥感等领域数据大图像检测时 xff0c 直接对大图检测会严重影响精度 xff0c 而通用工具多不能友好支持大图分块检测 Slicing Aided Hyper Inference SAHI 是一个用于辅助大图切片检测预测的包 目前可以良好的
  • YOLOv5训练参数简介

    YOLOv5参数解析 xff0c 这次主要解析源码中train py文件中包含的参数 1 1 39 weights 39 1 2 39 cfg 39 1 3 39 data 39 1 4 39 hyp 39 1 5 39 epochs 39

随机推荐

  • 亚米级土耳其地震影像数据下载

    下载地址1 xff0c 提供震前震后影像 部分震后影像的百度网盘存档 xff1a https pan baidu com s 1 rLV7cR F3casKRwQH7JTw 提取码 xff1a dou3 灾前 灾后影像 下载地址2 xff1
  • nms_rotated编译出错fatal error: THC/THC.h: No such file or directory

    问题描述 xff1a 使用 python setup py develop or 34 pip install v e 34 编译nms rotated时出错 xff1a fatal error THC THC h No such file
  • 解决 AttributeError: module ‘numpy‘ has no attribute ‘int‘

    原因 xff1a numpy int在NumPy 1 20中已弃用 xff0c 在NumPy 1 24中已删除 解决方式 xff1a 将numpy int更改为numpy int xff0c int 方法 xff1a 点击出现错误代码链接会
  • 机载高分辨率SAR数据(~0.1米)

    美国桑迪亚 xff08 sandia xff09 国家实验室提供一系列机载SAR数据 xff0c 包括MiniSAR FARAR等 数据分辨率4英寸 xff0c 约0 1米 原始数据下载地址 xff0c 数据是复数据 xff0c 以不同格式
  • ubuntu18.04 及以上版本命令模式和GUI切换

    网上大多数说的CTRL 43 ALT 43 F1 6进入命令模式 xff0c CTRL 43 ALT 43 F7进入GUI模式 xff0c 在ubuntu18 04 及以上无效 正确的方式是 xff1a 进入命令模式可以通过CTRL 43
  • Python内置库——http.client源码刨析

    看过了http client的文档 xff0c 趁热打铁 xff0c 今天继续研究一下http client的源码 xff08 一 xff09 你会怎么实现 开始之前先让我们回忆一下一个HTTP调用的完整流程 xff1a 看到这张图 xff
  • ssh连接ubuntu访问拒绝(access denied)

    网上大多针对ssh连接ubuntu访问拒绝的解决办法是安装ssh或防火墙开启端口等等 xff0c 但这些都没问题之后还是访问拒绝 xff0c 则考虑ssh包可能安装的有问题 xff0c 可以尝试重装 流程如下 xff1a 1 在ubuntu
  • 【论文-目标检测】RTMDet: An Empirical Study of Designing Real-Time Object Detectors

    论文 代码 官方原理与实现详解 发展YOLO系列并方便支持实例分割和斜框检测等任务 xff0c 亮点 xff1a 设计兼容性backbone和neck xff0c 采用大核深度可分离卷积 xff1b 动态标签分配中采用软标签计算匹配损失 x
  • 【OpenCV】图像金字塔 -- 下采样cv2.pyrDown() , 上采样cv2.pyrUp()

    参考 xff1a cv2 pyrDown TheAILearner 1 cv2 pyrDown 函数cv2 pyrDown 用于实现高斯金字塔中的下采样 函数原型 xff1a dst img 61 cv2 pyrDown src img d
  • 理解depth-wise 卷积

    EfficientNet利用depth wise卷积来减少FLOPs但是计算速度却并没有相应的变快 反而拥有更多FLOPs的RegNet号称推理速度是EfficientNet的5倍 非常好奇 xff0c 这里面发生了什么 xff0c 为什么
  • GIoU (Generalized Intersection over Union) 详解

    论文 xff1a Generalized Intersection over Union A Metric and A Loss for Bounding Box Regression 官方解读 xff1a Generalized Inte
  • Gitee push错误 Access denied: You do not have permission to push to the protected branch ‘master‘ via

    错误 xff1a 首次使用gitee向别人的repo提交代码 xff0c 发现出现权限问题无法push到master xff0c 提交命令如下 xff1a git push u origin master master 错误信息如下 xff
  • GDAL重采样与裁剪图像示例

    GDAL重采样 xff0c 可以通过写文件时改变图像尺寸和geo transformes的分辨率信息实现 核心代码示例如下 xff1a in ds 61 gdal Open fi gdal GA ReadOnly geotrans 61 i
  • pycharm专业版连接远程docker容器

    一 配置远程docker容器 1 启动带有端口的docker容器 6006端口是用来运行tensorboard的 xff0c 这里重要的是22端口 如果希望通过ssh远程连接docker xff0c 需要对容器的22端口做端口映射 dock
  • VScode 远程开发配置

    一 配置免密远程登录 因为是要远程登录 xff0c 那么需要通过使用ssh进行密钥对登录 xff0c 这样每次登录服务器就可以不用输入密码了 先来一句官方介绍 xff1a ssh 公钥认证是一种方便 高安全性的身份验证方法 xff0c 它将
  • np.meshgrid()与torch.meshgrid()的区别

    比如要生成一张图像 h 61 6 w 61 10 的xy坐标点 xff0c 看下两者的实现方式 xff1a 两种方式的差异在于 xff1a xs ys 61 np meshgrid np arange w np arange h xs ys
  • JSON是什么

    提起 JSON xff0c 作为如今最受欢迎的数据交换格式 xff0c 可以说是无人不知 无人不晓了 JSON 全称 JavaScript Object Notation xff08 JS 对象简谱 xff09 xff0c 自诞生之初的小目
  • 【C++】数组定义引发Stack overflow错误(运行时是报段错误)

    C 43 43 xff08 实际是C的语法 xff09 定义数组时出错 xff0c 代码如下 xff1a float t1 9830400 调试时触发Stack overflow错误 xff08 可执行文件运行时 xff0c 是报段错误 x
  • 【C/C++】数组初始化

    数组定义不初始化会被随机赋值 因此如果数组的所有元素在下面没有逐一赋值 xff0c 但是又会使用到的话 xff0c 最后不要只定义而不初始化 会带来问题 数组初始化的几种形式 可以直接用 xff1a a 10 61 xff0c 就可以让a
  • 【C++】指针数组与数组指针

    指针数组 指针数组可以说成是 指针的数组 xff0c 首先这个变量是一个数组 xff0c 其次 xff0c 指针 修饰这个数组 xff0c 意思是说这个数组的所有元素都是指针类型 xff0c 在32位系统中 xff0c 指针占四个字节 定义