[测试]关于一维数组和二维数组与指针的某些关系

本文详细解析了C语言中二维数组与指针的使用方法,包括大小、元素大小、指针运算符的应用及内存地址的输出。

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

#include<stdio.h>
int main()
{
	int a[3][4]={11,12,13,14,15,16,17,18,19,110,111,112};
	int s[5]={111,222,333,444,555};
	printf("sizeof(a):%d\n",sizeof(a));
	printf("sizeof(a[0]):%d\n",sizeof(a[0]));
	printf("sizeof(a[0][0]):%d\n",sizeof(a[0][0]));
	printf("a=%p\n",a);
	printf("a+1=%p\n",a+1);
	printf("*a+1=%p\n",*a+1);
	printf("*a=%p\n",*a);
	printf("*(a+1)=%p\n",*(a+1));
	printf("*(a+1)+1=%p\n",*(a+1)+1);

	printf("\n\n");
	int *ptr1=(&a+1);
	printf("%d\n",*(ptr1-1));//112
	int *ptr2=(&a[1]+1);
	printf("%d\n",*(ptr2-1));//18
	printf("%d\n",*a[1]);//15 a[1]是指向第二行的首地址
	printf("%d\n",*(a+1));//=a[1] 输出的为15的地址
	printf("%d\n",**(a+1));//15

	printf("\n");
//	printf("%d\n",*s[1]);//报错
	printf("%d\n",*(s+1));//222
	return 0;
}

运行结果:

sizeof(a):48
sizeof(a[0]):16
sizeof(a[0][0]):4
a=0xbfc8e8f4
a+1=0xbfc8e904
*a+1=0xbfc8e8f8
*a=0xbfc8e8f4
*(a+1)=0xbfc8e904
*(a+1)+1=0xbfc8e908




112
18
15
-1077352188
15


222



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值