当前位置: 首页 > news >正文

44.5.【C语言】辨析“数组指针”和“指针数组”

目录

1.数组指针

2.指针数组

执行结果

底层分析


1.数组指针

从语文的角度理解,"数组"修饰"指针".因此数组指针是指针

例如以下代码

#include <stdio.h>
int main() 
{char a[5] = { "ABCDE" };return 0;}

其中a就是数组指针,因为数组名代表数组首元素的地址,该数组名指向数组的首元素A

2.指针数组

从语文的角度理解,"指针"修饰"数组".因此指针数组是数组

由指针数组的定义,如果存储一级指针,则就要定义类型为二级指针的数组来存储

例如以下代码

#include <stdio.h>
int main() 
{char* a[5] = { "ABC","DEF","GHI","JKL","MNO" };return 0;}

下断点至return 0;,打开内存窗口,输入&a

发现存储的元素的值是地址0x00e47bcc,0x00e47bd0,0x00e47bd4,0x00e47bd8,0x00e47bdc

相邻两个值都差4

地址栏输入0x00e47bcc,跳转到的是存储字符串的内存空间

打印指针数组指向的字符串

#include <stdio.h>
int main()
{char* a[5] = { "ABC","DEF","GHI","JKL","MNO" };for (int i=0;i<5;i++)printf("%s ", a[i]);return 0;
}

注意:打印char*类型的数据,直接就是%s,后面跟char*类型的首元素地址

执行结果

底层分析

调试模式下,转到反汇编

只看重点部分

	char* a[5] = { "ABC","DEF","GHI","JKL","MNO" };
00E44A76  mov         dword ptr [a],offset string "ABC" (0E47BCCh)  
00E44A7D  mov         dword ptr [ebp-14h],offset string "DEF" (0E47BD0h)  
00E44A84  mov         dword ptr [ebp-10h],offset string "GHI" (0E47BD4h)  
00E44A8B  mov         dword ptr [ebp-0Ch],offset string "JKL" (0E47BD8h)  
00E44A92  mov         dword ptr [ebp-8],offset string "MNO" (0E47BDCh)  

注意到"offset string",是将字符串的地址存储到数组中,因此顾名思义,为指针数组

相关文章:

44.5.【C语言】辨析“数组指针”和“指针数组”

目录 1.数组指针 2.指针数组 执行结果 底层分析 1.数组指针 从语文的角度理解,"数组"修饰"指针".因此数组指针是指针 例如以下代码 #include <stdio.h> int main() {char a[5] { "ABCDE" };return 0;} 其中a就是数组指针,因为数…...

node.js基础学习-express框架-路由及中间件(十)

一、前言 Express 是一个简洁、灵活的 Node.js Web 应用框架。它基于 Node.js 的内置 HTTP 模块构建&#xff0c;提供了一系列用于构建 Web 应用程序和 API 的功能&#xff0c;使开发者能够更高效地处理 HTTP 请求和响应&#xff0c;专注于业务逻辑的实现。 其特点包括简单易用…...

使用MSYS搭建linux开发环境踩坑笔记

前言&#xff1a; 使用linux系统或虚拟机进行嵌入式linux开发是常规方法&#xff1b; 使用MSYS是用于尝鲜和研究。 由于windows和linux的差异&#xff0c;使用MSYS代替Linux虚拟机会遇到很多坑。 主要原因在于&#xff1a; 1. windows和linux文件系统的差异&#xff1a;win不…...

vue3+ts+vite+ElementPlus上传进度条实时更新(UPLoad和progress)。

需求&#xff1a; 上传文件时&#xff0c;展示进度条实时更新&#xff1a; 下面是代码片段: <!-- 添加媒体弹窗 -- 上传 --><el-dialog v-model"centerDialogVisible" title"媒体信息" width"700" :close-on-click-modal"false&qu…...

AspNet WebAPI 模型绑定问题

继承System.Web.Http.ApiController的Action的Model如果被[Serializable]定义&#xff0c;会导致Model的字段无法绑定。 Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll [Serializable] public class Model {public string id { get; set; } }public MyA…...

Android 图形系统之七:SurfaceFlinger

一. 引言 什么是 SurfaceFlinger&#xff1f;SurfaceFlinger 的核心作用和地位&#xff1f;为什么需要了解 SurfaceFlinger&#xff1f; 二. SurfaceFlinger 的基本概念 Surface 和 SurfaceFlinger 的关系SurfaceFlinger 与图形渲染&#xff08;OpenGL ES 和 Vulkan&#xf…...

14、鸿蒙学习——管理通知角标

针对未读的通知&#xff0c;系统提供了角标设置接口&#xff0c;将未读通知个数显示在桌面图标的右上角角标上。 通知增加时&#xff0c;角标上显示的未读通知个数需要增加。 通知被查看后&#xff0c;角标上显示的未读通知个数需要减少&#xff0c;没有未读通知时&#xff0…...

TongRDS分布式内存数据缓存中间件

命令 优势 支持高达10亿级的数据缓冲&#xff0c;内存优化管理&#xff0c;避免GC性能劣化。 高并发系统设计&#xff0c;可充分利用多CPU资源实现并行处理。 数据采用key-value多索引方式存储&#xff0c;字段类型和长度可配置。 支持多台服务并行运行&#xff0c;服务之间可互…...

[在线实验]-RabbitMQ镜像的下载与部署

镜像下载 docker的rabbitmq镜像资源-CSDN文库 加载镜像 docker load --input rabbitmq.tar 给镜像打标签 这里发现镜像名为none&#xff0c;需要给镜像重命名下 docker tag [镜像id] [新镜像名称]:[新镜像标签] docker tag ebaf409ffbe2 rabbitmq:management 运行镜像…...

Linux 系统文件描述符(File Descriptor)小白级介绍

1. 概述 Linux 遵循"一切皆文件"的理念。在 Linux 系统中&#xff0c;文件描述符是一个索引值&#xff08;非负整数&#xff09;&#xff0c;指向内核为每个进程所维护的该进程打开文件的记录表。 如上所述&#xff0c;每个进程都维护着一张文件描述符表。 文件描述…...

【Verilog】实验二 数据选择器的设计与vivado集成开发环境

目录 一、实验目的 二、实验环境 三、实验任务 四、实验原理 五、实验步骤 top.v mux2_1.v 一、实验目的 1. 掌握数据选择器的工作原理和逻辑功能。 2. 熟悉vivado集成开发环境。 3. 熟悉vivado中进行开发设计的流程。 二、实验环境 1. 装有vivado的计算机。 2. Sw…...

IDL学习笔记(三)OMI数据处理。hdf5文件读取,图像反转,GeoTiff区别,月季年均值计算提取输出,单位转换,运行时间计算

modis Level 2 grid 数据是全球格网化数据。一天的数据全在其中。 modis Level 1 和 2 数据是一景一景的影像。 IDL学习笔记&#xff08;三&#xff09;OMI数据处理 hdf5文件读取单位转换&#xff0c;输出hdf5数据集的图像&#xff0c;并检查图像经纬度是否正确&#xff0c;若错…...

深入浅出:PHP中的数据类型全解析

文章目录 引言理解数据类型标量类型整数 (integer)浮点数 (float)布尔值 (boolean)字符串 (string) 复合类型数组 (array)对象 (object)资源 (resource)NULL 特殊类型Callable强制类型转换 实战案例总结与展望参考资料 引言 在编程的世界里&#xff0c;数据类型是构建任何应用…...

要使用 OpenResty 创建一个接口,返回客户端的 IP 地址,并以 JSON 格式输出

要使用 OpenResty 创建一个接口&#xff0c;返回客户端的 IP 地址&#xff0c;并以 JSON 格式输出 要使用 OpenResty 创建一个接口&#xff0c;返回客户端的 IP 地址&#xff0c;并以 JSON 格式输出方案一解决方案&#xff08;openresty使用cjson&#xff09;说明&#xff1a;使…...

智慧油客:从初识、再识OceanBase,到全栈上线

今天&#xff0c;我们邀请了智慧油客的研发总监黄普友&#xff0c;为我们讲述智慧油客与 OceanBase 初识、熟悉和结缘的故事。 智慧油客自2016年诞生以来&#xff0c;秉持新零售的思维&#xff0c;成功从过去二十年间以“以销售产品为中心”的传统思维模式&#xff0c;转向“以…...

ClickHouse守护进程

背景描述 维护CK过程中&#xff0c;有时候会有CK OOM&#xff0c;并且CK自己没有自动拉起的情况出现&#xff1b;那么这个时候就需要守护进程&#xff0c;最初我不说了Supervisor来做守护进程&#xff0c;但是当我手动kill的时候发现并没有自动拉起。 解决方案 于是乎自己写…...

智能合约

06-智能合约 0 啥是智能合约&#xff1f; 定义 智能合约&#xff0c;又称加密合约&#xff0c;在一定条件下可直接控制数字货币或资产在各方之间转移的一种计算机程序。 角色 区块链网络可视为一个分布式存储服务&#xff0c;因为它存储了所有交易和智能合约的状态 智能合约还…...

SQL面试题——拼多多SQL面试题 求连续段的起始位置和结束位置

拼多多SQL面试题 求连续段的起始位置和结束位置 今天的题目来自拼多多,我们先看一下题目描述 有一张表ids记录了id,id不重复,但是会存在间断,求出连续段的开始位置和结束位置 +---+ | id| +---+ | 1| | 2| | 3| | 5| | 6| | 8| | 10| | 12| | 13| | 14| | 15| +--…...

玩《三角洲行动》遇到游戏运行故障是什么原因?游戏运行故障要怎么解决?预防游戏运行故障问题出现

《三角洲行动》游戏运行故障解析与解决方案&#xff1a;原因、解决与预防 在畅游《三角洲行动》这款充满挑战与激情的游戏时&#xff0c;玩家可能会遭遇各种游戏运行故障&#xff0c;如卡顿、闪退、无法启动等问题。我将结合自己丰富的经验和知识&#xff0c;为大家深入剖析《…...

基于灰色神经网络的订单需求预测

灰色神经网络&#xff08;Grey Neural Network, GNN&#xff09; 是将灰色系统理论与人工神经网络相结合的一种模型&#xff0c;旨在处理不完全信息和小样本问题。灰色神经网络利用灰色系统的预测优势和神经网络的学习能力&#xff0c;能够在信息不完整或数据不充分的情况下实现…...

告别Centerness和IoU-Net:聊聊GFLv2如何用‘边框分布统计’更准地评估定位质量

目标检测定位质量评估的范式革新&#xff1a;从启发式设计到统计驱动 在目标检测领域&#xff0c;定位质量评估&#xff08;Localization Quality Estimation, LQE&#xff09;一直是个微妙却关键的问题。想象一下这样的场景&#xff1a;当两个检测框都包含了目标物体&#xf…...

RK3576嵌入式平台Weston配置实战:从显示校准到性能调优

1. 项目概述&#xff1a;为什么Weston配置值得深挖&#xff1f;如果你正在基于RK3576这类高性能嵌入式平台进行产品开发&#xff0c;尤其是涉及图形化人机交互界面的项目&#xff0c;那么你大概率已经接触或正在使用Wayland/Weston这套显示协议栈。RK3576作为一款集成了强大GPU…...

终极Steam挂刀指南:如何利用开源行情站实现智能交易收益

终极Steam挂刀指南&#xff1a;如何利用开源行情站实现智能交易收益 【免费下载链接】SteamTradingSiteTracker Steam 挂刀行情站 —— 24小时更新的 BUFF & IGXE & C5 & UUYP & ECO 挂刀比例数据 | Track cheap Steam Community Market items on buff.163.com…...

PMP认证深度解析:从知识体系到实战应用的全方位指南

1. 项目概述&#xff1a;从“认证”到“职业语言”的深度解码当你在项目管理圈子里待久了&#xff0c;会发现一个有趣的现象&#xff1a;无论大家来自哪个行业——是互联网大厂的产品研发&#xff0c;还是传统制造业的产线升级&#xff0c;甚至是大型活动的策划执行——只要聊到…...

YimMenu完全指南:如何在GTA5中构建你的个人安全增强系统

YimMenu完全指南&#xff1a;如何在GTA5中构建你的个人安全增强系统 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/Yi…...

Perplexity历史资料搜索失效真相大起底(时间戳偏移、缓存策略与知识图谱断层深度解析)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Perplexity历史资料搜索失效真相大起底&#xff08;时间戳偏移、缓存策略与知识图谱断层深度解析&#xff09; Perplexity 的历史资料检索能力在近期高频出现“查无结果”或“返回过期摘要”现象&#…...

基于ARM9工业平板与Linux的水质在线监测系统开发实践

1. 项目概述&#xff1a;当工业平板电脑遇上水质监测在环保、水产养殖、市政水务这些领域里&#xff0c;数据就是眼睛。过去&#xff0c;我们看水质&#xff0c;得靠人拿着采样瓶&#xff0c;一趟趟跑现场&#xff0c;再送回实验室&#xff0c;等上半天甚至几天才能拿到一份报告…...

OBS面部追踪插件:让你的直播镜头自动跟随你的脸

OBS面部追踪插件&#xff1a;让你的直播镜头自动跟随你的脸 【免费下载链接】obs-face-tracker Face tracking plugin for OBS Studio 项目地址: https://gitcode.com/gh_mirrors/ob/obs-face-tracker 还在为直播时频繁调整镜头位置而烦恼吗&#xff1f;OBS Face Tracke…...

从零到专业:ComfyUI中文工作流全解析与技术实践

从零到专业&#xff1a;ComfyUI中文工作流全解析与技术实践 【免费下载链接】ComfyUI-Workflows-ZHO 我的 ComfyUI 工作流合集 | My ComfyUI workflows collection 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-Workflows-ZHO 在AI图像生成领域&#xff0…...

如何5分钟部署AI斗地主助手:从零开始打造你的智能游戏伙伴

如何5分钟部署AI斗地主助手&#xff1a;从零开始打造你的智能游戏伙伴 【免费下载链接】DouZero_For_HappyDouDiZhu 基于DouZero定制AI实战欢乐斗地主 项目地址: https://gitcode.com/gh_mirrors/do/DouZero_For_HappyDouDiZhu 还在为斗地主游戏中的决策烦恼吗&#xff…...