栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

点题

下面这行代码中数组名 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内部单独放一个数组名,它计算的是整个数组的大小。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/869111.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号