你真的了解 C语言 中【数组名】的含义吗?

本文详细解析了C++中数组名arr的含义,通常它代表数组首地址,即第一个元素的地址。但也存在两种特殊情形:一是数组名表示整个数组,二是sizeof操作符用于计算整个数组的大小。通过示例说明,当使用取址符&与数组名结合时,得到的是整个数组的地址,而sizeof(arr)则返回数组占用的总字节数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

点题

下面这行代码中数组名 arr 含义是什么?

int arr[10] = {0}; 

1、数组首地址

在大部分情况下,我们遇到数组名的时候,它就是数组首地址

数组首地址就是数组的第一位元素的地址。

假设有这样一个数组int arr[10] = {1,2,3,4,5,6,7,8,9,10};
那么它的 数组名arr 就代表 arr[0] 也就是 元素 1 的地址。

示例:

在这里插入图片描述

2、两种特殊情况:

除去常见的数组首地址,还有比较少见的两种情况。
一是,&数组名,数组名表示整个数组。
二是,sizeof内部单独放一个数组名,数组名表示整个数组。

  • &arr – 整个数组的地址

    当用取址符号 & 和数组名搭配时,那么取出的是整个数组地址。

    示例:
    当 arr 和 &arr 分别加一,前者跨过了首元素到第二个元素,于是多了 4;后者多了 40,跨过了整个数组,因此 &arr 代表着整个数组的地址。
    注意:地址是十六进制,0x开头;整型int为 4 个字节。 十六进制数0x28转为十进制是40。

    在这里插入图片描述


  • sizeof(arr) – 整个数组的大小(单位字节)

    当使用操作符 sizeof ,它会返回一个内存字节数。

    这行代码中 n 是多少?
    int arr[10] = {1,2,3,4,5,6,7,8,9,10};
    int n = sizeof(arr);

    如图所见:
    结果并不是4,而是40,是因为在这的 arr 不是数组首地址, sizeof内部单独放一个数组名,它计算的是整个数组的大小。
    在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值