【C语言】数组是首元素地址但有②个例外|拓展数组指针访问二维数组

举报
謓泽 发表于 2023/09/30 15:46:30 2023/09/30
1k+ 0 0
【摘要】 【C语言】数组是首元素地址但有②个例外 

🔥 数组是首元素地址但有②个例外 

①. sizeof(数组名) - 数组名表示整个数组,计算的是整个数组大小,单位是字节。

🔥注意:sizoof(数组名)这个是必须要单独存放的才算是表示数组的整个大小!

②. &数组名 - 数组名表示整个数组,取出的是整个数组的地址。

除了上述这两个,sizeof(数组名) 和 &数组名 其它的表示都是数组名(arr)首元素的地址。 

🔥 拓展数组指针访问二维数组

示例代码如下👇

#include<stdio.h>
int main(void)
{
	int arr[3][3] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 10, 9 } };
	int (*p)[3] = arr;      //arr首元素(而是一个数组具有三个元素char arr[3])地址
	printf("%d", *(p[2]+1));
	return 0;
}

运行结果🖍

10

当然还有一种形式可以用指针变量来访问,如下代码所示👇

#include<stdio.h>
int main(void)
{
	int arr[3][3] = { { 1, 8, 3 }, { 0, 5, 6 }, { 7, 10, 9 } };
	int* ptr = (int*)arr;
	printf("%d", *(ptr+4));
	return 0;
}

运行结果🖍

5

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。