数组指针的定义方式
- 通过typedef先定义出数组类型,再通过数组类型定义数组指针
- 通过typedef先定义出数组指针类型,再通过数组指针类型定义数组指针
- 直接定义数组指针
#include <stdio.h>
//1. 通过typedef先定义出数组类型,再通过数组类型定义数组指针
void test01()
{
int arr[5] = {1, 2, 3, 4, 5};
typedef int(ARRARY_TYPE)[5]; // ARRARY_TYPE为数组类型,代表存放5个int类型元素的数组类型
ARRARY_TYPE * pArr = &arr; // 对数组名取地址,得到的是数组指针
for (int ii = 0; ii < 5; ++ii)
{
// *pArr == arr
printf("%d\n", (*pArr)[ii]); // 使用数组指针访问数组元素的方式,先解引用再取数组中元素
}
}
//2. 通过typedef先定义出数组指针类型,再通过数组指针类型定义数组指针
void test02()
{
int arr[5] = {1, 2, 3, 4, 5};
typedef int(*ARRARY_TYPE_PTR)[5]; // ARRARY_TYPE_PTR为数组指针类型,代表存放5个int类型元素的数组指针类型
ARRARY_TYPE_PTR pArr = &arr;
for (int ii = 0; ii < 5; ++ii)
{
printf("%d\n", (*pArr)[ii]);
}
}
//3. 直接定义数组指针
void test03()
{
int arr[5] = {1, 2, 3, 4, 5};
int (*pArr)[5] = &arr; // pArr为数组指针,代表存放5个int类型元素的数组指针
for (int ii = 0; ii < 5; ++ii)
{
printf("%d\n", (*pArr)[ii]);
}
}
int main()
{
test01();
test02();
test03();
return 0;
}
版权声明:本文为L_insting原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。