typedef int(ArrayType)[3];
ArrayType *p = NULL;
数组类型指针 就是 定义一个指针 , 指向数组首地址 ;
使用 数组类型* 定义数组指针 ,
首先 , 定义数组类型 别名 ,
typedef int(ArrayType)[3];
然后 , 使用别名类型 , 声明数组变量 ,
ArrayType array2 = {0};
最后 , 声明一个指针 , 将 array2 变量地址赋值给该指针 , 指针指向的数据类型为 int[3] 数组类型的变量 array2 ;
ArrayType *p = NULL;
p = &array2;
验证上述 定义的数组指针 :
为 数组元素 赋值 ,
// 为数组赋值
int i = 0;
for(i = 0; i < 3; i++)
{
array2[i] = i + 1;
}
使用 数组指针 , 打印数组元素内容 :
// 使用 数组指针 访问数组中的值
for(i = 0; i < 3; i++)
{
printf("%d\n", (*p)[i]);
}
代码示例 :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
// 指针数组 , 数组元素是指针
char *array = {"12", "ab", "34"};
// 数组指针 , 使用指针变量指向数组
// 使用 数组别名 定义数组指针
// 首先 , 定义数组类型 别名
typedef int(ArrayType)[3];
// 然后 , 使用别名类型 , 声明数组变量
ArrayType array2 = {0};
// 最后 , 声明一个指针 , 将 array2 变量地址赋值给该指针
// 指针指向的数据类型为 int[3] 数组类型的变量 array2
ArrayType *p = NULL;
p = &array2;
// 为数组赋值
int i = 0;
for(i = 0; i < 3; i++)
{
array2[i] = i + 1;
}
// 使用 数组指针 访问数组中的值
for(i = 0; i < 3; i++)
{
printf("%d\n", (*p)[i]);
}
// 命令行不要退出
system("pause");
return 0;
}
执行结果 :
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有