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

举报
謓泽 发表于 2023/09/30 15:46:30 2023/09/30
【摘要】 【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

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

全部回复

上滑加载中

设置昵称

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

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

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