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

c语言——数组名该如何理解呢?

一般情况下,数组名表示首元素地址,以下2种除外:

①、sizeof(数组名)    表示整个数组   ※只有数组名的情况

        sizeof(数组名+i) 就不能表示整个数组

②、&数组名             表示整个数组,取的是整个数组的地址

int main()
{int arr[] = { 1,2,3,4,5 };int n = sizeof(arr);//整个数组int m = sizeof(arr + 1);//首元素地址+1,下一个元素地址,仅一个元素printf("%d\n", n);printf("%d\n\n", m);printf("%p\n", arr);//首元素地址printf("%p\n", arr + 1);//首元素往后一位的地址printf("%p\n", &arr[0]);//首元素地址printf("%p\n", &arr[0]+1);//首元素往后一位地址printf("%p\n", &arr);//全部元素的地址,只是只打印了首元素的printf("%p\n", &arr+1);//跳过整个数组后的第一个元素的地址return 0;
}

结果是:

20
4

00AFFE58
00AFFE5C
00AFFE58
00AFFE5C
00AFFE58
00AFFE6C

sizeof是计算()占了多少字节(byte)

可以看出,&arr 取的是整个数组的地址,怎么存放这么多地址呢?

数组指针 呀~

int (*p)[5]=&arr;

p和*先结合,表示p是指针,然后再结合[5]和int 表示是int[5]类型的

指针配合数组

打印结果是多少呢?

解释如下 👇

{int a[] = { 1,2,3,4 };printf("%d\n", sizeof(a));//16,整个数组的大小printf("%d\n", sizeof(a+0));//4或8 首元素地址printf("%d\n", sizeof(*a));//4 a是首元素地址,解引用找到首元素printf("%d\n", sizeof(a+1));//4或8 第二个元素的地址printf("%d\n", sizeof(a[1]));//4 第二个元素printf("%d\n", sizeof(&a));//【4或8】 &a是整个数组的地址,也是个地址//可以理解为,数组指针是4或8,它俩大小一样printf("%d\n", sizeof(*&a));//16 整个数组  &a是整个数组的地址,解引用后,是整个数组//printf("%d\n", sizeof(&a+1));//【4或8】 也是个地址,跳过整个数组printf("%d\n", sizeof(&a[0]));//4或8 首元素地址printf("%d\n", sizeof(&a[0]+1));//4或8 第二个元素地址return 0;
}

🤗🤗🤗🤗🤗🤗🤗🤗🤗🤗

相关文章:

c语言——数组名该如何理解呢?

一般情况下,数组名表示首元素地址,以下2种除外: ①、sizeof(数组名) 表示整个数组 ※只有数组名的情况 sizeof(数组名i) 就不能表示整个数组 ②、&数组名 表示整个数组,取的是整个数…...

Linux学习笔记13 系统进程管理

前文 Linux学习笔记10 系统启动初始化,服务和进程管理(上)-CSDN博客 Linux学习笔记11 系统启动初始化,服务和进程管理(下)-CSDN博客 Linux学习笔记12 systemd的其他命令-CSDN博客 之前学习了怎么使用sy…...

Spring Boot 项目集成camunda流程引擎

Spring Boot 项目集成camunda流程引擎 camunda地址 camunda中文地址 使用camunda开源工作流引擎有:通过docker运行、使用springboot集成、部署camunda发行包、基于源代码编译运行等多种方式。 文本重点介绍如何在Spring Boot应用程序中如何集成Camunda Platform开…...

2024.12.2工作复盘

1.今天学了什么? 简单的写了一篇博客,是关于参数校验的问题,参数校验,一个是前后端校验到底一不一致,一个是绕过前端校验,看后台的逻辑到底能不能校验住。 2.今天解决了什么问题? 3.今天完成…...

Hot100 - 二叉树的中序遍历

Hot100 - 二叉树的中序遍历 最佳思路: 中序遍历的顺序是:左子树 -> 根节点 -> 右子树。为了实现这个顺序,我们可以利用栈来模拟递归过程,从而避免栈溢出的问题。在遍历过程中,始终向左子树深入,直到…...

docker build ubuntu ssh

dockerfile 构建镜像 为了使用Dockerfile构建Docker镜像,请遵循以下步骤: 创建一个名为Dockerfile的文件,并在其中定义镜像的构建指令。 FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ubuntu:24.04# 安装openssh-server和pas…...

三维路径规划|基于黑翅鸢BKA优化算法的三维路径规划Matlab程序

三维路径规划|基于黑翅鸢BKA优化算法的三维路径规划Matlab程序 文章目录 前言三维路径规划|基于黑翅鸢BKA优化算法的三维路径规划Matlab程序基于黑翅鸢BKA优化算法的三维路径规划一、研究基本原理二、黑翅鸢BKA优化算法的基本步骤:三、详细流程四、总结 二、实验结果…...

day01(Linux底层)基础知识

目录 导学 基础知识 1、Bootloader是什么 2、Bootloader的基本作用 3、入式中常见的Bootloader有哪些 4、Linux系统移植为什么要使用bootloader 5、uboot和Bootloader之间的关系 6.Uboot的获取 7、uboot版本命名 8、uboot版本选择 9、uboot的特点 10.Uboot使用 导学…...

flink学习(13)—— 重试机制和维表join

重试机制 当任务出现异常的时候,会直接停止任务——解决方式,重试机制 1、设置checkpoint后,会给任务一个重启策略——无限重启 2、可以手动设置任务的重启策略 代码设置 //开启checkpoint后,默认是无限重启,可以…...

第三方Cookie的消亡与Google服务器端标记的崛起

随着互联网用户对隐私保护的关注日益增强,各大浏览器正在逐步淘汰第三方Cookie。这一变革深刻影响了广告商和数字营销人员的用户跟踪和数据分析方式。然而,Google推出的服务器端标记技术为这一挑战提供了新的解决方案。 什么是第三方Cookie? …...

微信小程序——文档下载功能分享(含代码)

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...

Burp Suite 全面解析:开启你的 Web 安全测试之旅

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…...

Oracle DataGuard 主备正常切换 (Switchover)

前言 众所周知,DataGuard 的切换分为两种情况: 系统正常情况下的切换:这种方式称为 switchover,是无损切换,不会丢失数据。灾难情况下的切换:这种情况下一般主库已经启动不起来了,称为 failov…...

为什么编程语言会设计不可变的对象?字符串不可变?NSString *s = @“hello“变量s是不可变的吗?Rust内部可变性的意义?

为什么编程语言会设计不可变的对象? Java和C#中String是不可变的,StringBuilder是可变的。Obj-C中NSArray是不可变数组,NSMutableArray是可变数组。编程语言设计不可变的对象其实是为了优化(更高性能和节省存储空间)、安全(包括线程安全)。 字符串不可变…...

安装 RabbitMQ 服务

安装 RabbitMQ 服务 一. RabbitMQ 需要依赖 Erlang/OTP 环境 (1) 先去 RabbitMQ 官网,查看 RabbitMQ 需要的 Erlang 支持:https://www.rabbitmq.com/ 进入官网,在 Docs -> Install and Upgrade -> Erlang Version Requirements (2) …...

爬虫—Scrapy 整合 ChromeDriver 实现动态网页拉取

在进行爬虫开发时,使用 Scrapy 配合 ChromeDriver 来模拟真实浏览器加载 JavaScript 渲染内容是一种常见且高效的方法。Scrapy 本身是一个非常强大的爬虫框架,然而它默认使用的是 requests 库来抓取静态网页内容。对于需要通过 JavaScript 渲染的动态网页…...

Linux 进程管理详解

Linux 进程管理详解 引言 在现代操作系统中,进程是执行程序的基本单位。Linux作为一个强大的多任务操作系统,提供了丰富且灵活的机制来管理和控制进程。本文将详细介绍Linux进程管理的基本概念、核心机制以及常用的管理工具,帮助读者深入了…...

MySQL更新JSON字段key:value形式

MySQL更新JSON字段key:value形式 1. 介绍 ‌MySQL的JSON数据类型‌是MySQL 5.7及以上版本中引入的一种数据类型,用于存储JSON格式的数据。使用JSON数据类型可以自动校验文档是否满足JSON格式的要求,优化存储格式,并允许快速访问文档中的特定…...

vue.js学习(day 18)

实例:面经基础版...

WINDOWS 单链表SLIST_ENTRY使用

1.初始化链表头 //初始化链表头qq1490900437 void InitialGloubleVar() {while (1){G_Handle.SaveProcessThreadHandle (PSLIST_HEADER)_aligned_malloc(sizeof(SLIST_HEADER), MEMORY_ALLOCATION_ALIGNMENT);if (G_Handle.SaveProcessThreadHandle ! NULL){break;}}Initiali…...

终极免费EVE舰船配置神器:Pyfa完整实战指南

终极免费EVE舰船配置神器:Pyfa完整实战指南 【免费下载链接】Pyfa Python fitting assistant, cross-platform fitting tool for EVE Online 项目地址: https://gitcode.com/gh_mirrors/py/Pyfa 在EVE Online这个充满挑战的宇宙中,打造一艘完美的…...

PowerBuilder老系统维护指南:PB12.5连接现代数据库(如MySQL 8.0)的避坑实操

PowerBuilder老系统维护实战:PB12.5连接MySQL 8.0的七个关键步骤 当技术栈的代际差异超过十年,每一次数据库连接尝试都可能演变成一场跨越时空的调试马拉松。那些在2006年运行良好的PB12.5应用,今天面对MySQL 8.0的SSL加密要求和UTF8MB4字符集…...

SEO_为什么你的网站需要SEO?关键原因解析

<h3 id"seoseo">SEO:为什么你的网站需要SEO&#xff1f;关键原因解析</h3> <p>在当今数字化时代&#xff0c;拥有一个网站是企业或个人展示品牌、产品和服务的重要途径。仅仅拥有一个网站并不足以吸引足够的访问量和客户。这时&#xff0c;SEO&…...

BiliTools:全能B站资源管理工具,让离线学习与内容备份无忧

BiliTools&#xff1a;全能B站资源管理工具&#xff0c;让离线学习与内容备份无忧 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持视频、音乐、番剧、课程下载……持续更新 项目地址: https://gitcode.com/GitHub_Tren…...

终极指南:使用Rust工具uesave轻松编辑虚幻引擎游戏存档

终极指南&#xff1a;使用Rust工具uesave轻松编辑虚幻引擎游戏存档 【免费下载链接】uesave 项目地址: https://gitcode.com/gh_mirrors/ue/uesave uesave-rs是一款基于Rust语言开发的专业工具&#xff0c;专门用于读取和写入虚幻引擎的GVAS格式游戏存档文件。这款强大…...

2. Linux桌面环境介绍

2. Liunx桌面环境介绍 桌面介绍终端设置 设置终端属性&#xff1a;字体快捷键&#xff1a; 新建终端&#xff08;ctrlaltN&#xff09;新建标签&#xff08;ctrlaltT&#xff09;背景和锁屏设置语言和输入法设置课后作业 系统开机、关机账户的注销、锁屏打开常用程序&#xff0…...

ESP32开发实战:5分钟搞定MicroPython调用C库驱动LED(附完整代码)

ESP32混合编程实战&#xff1a;用MicroPython调用C库实现高性能LED控制 在物联网设备开发中&#xff0c;ESP32凭借其出色的性价比和丰富的功能接口成为硬件开发者的首选。而MicroPython作为嵌入式领域的Python实现&#xff0c;以其简洁的语法和快速的开发周期赢得了大量开发者的…...

手把手教你windows下如何部署copaw

前言&#xff1a; 本文内容主要讲解通过手工部署python并使用pip安装部署copaw&#xff0c;在官网有一键部署脚本等等教程&#xff0c;都很方便&#xff0c;但为什么作者要通过手工部署python环境&#xff0c;原因很简单&#xff0c;解决环境冲突的问题&#xff0c;通过conda能…...

手把手教你用modf()和fmod()解决C语言浮点数计算中的常见坑

深入解析C语言浮点数计算&#xff1a;modf()与fmod()的实战应用 浮点数计算在C语言开发中无处不在&#xff0c;从游戏物理引擎到嵌入式传感器数据处理&#xff0c;精确的浮点运算直接关系到程序行为的正确性。然而&#xff0c;许多开发者第一次遭遇浮点数计算误差时&#xff0c…...

突破软件授权限制:基于注册表权限控制的持久化使用方案——以下载工具为例

突破软件授权限制&#xff1a;基于注册表权限控制的持久化使用方案——以下载工具为例 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script 一、场景痛点&#xff1a;…...