数组类型 数组指针类型 数组指针变量

#define _CRT_SECURE_NO_WARNING
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main01()
{
	int arr1[9] = { 0 };
	memset(arr1, 0, sizeof(arr1));
	typedef int(MYARR)[9];
	MYARR arr2;
	printf("arr2 :%d arr2+1:%d\n", arr2, arr2 + 1);
	printf("&arr2:%d	&arr2+1:%d\n", &arr2, &arr2 + 1);


	printf("\n");
	system("pause");
	return 0;
}
int main()
{
	int arr1[9] = { 1,2,3,4,6,7 };
	//1 先定义数组类型,再定义数组类型的指针,
	typedef int(ArrType)[9];
	ArrType * a1;
	a1 = &arr1;
	//a1 = arr1;//a1[i]结果都一样,步长是确定的
	int i = 0;
	for (i = 0; i < 9; i++)
	{
		//printf("%d ", a1[i]);
		printf("%d ", *((*a1) + i));
	}
	printf("\n");
	printf("------------------------\n");
	//2 定义数组指针类型
	typedef int(*pArrType)[9];
	pArrType a2;
	a2 = &arr1;
	for (i = 0; i < 9; i++)
	{
		printf("%d ", (*a2)[i]);
		//printf("%d ", *((*a2) + i));
	}

	printf("\n");
	printf("------------------------\n");
	//3 定义数组指针变量
	int(*pType)[9];//pType是一个变量
	pType = &arr1;
	//printf("%d %d %d %d\n", pType, *pType, &arr1, arr1);//地址一样
	//printf("%d\n", *(int*)(pType));//结果为1

	for (i = 0; i < 9; i++)
	{
		//printf("%d ", (*pType)[i]);
		printf("%d ", ((int*)pType)[i]);

		//printf("%d ", *((*pType) + i));
	}
	printf("\n");
	system("pause");
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值