赞
踩
指向整个数组,即一个整体,可以看做单个变量
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> //********************【数组指针】:它是指针,指向数组的指针**********************************。 //数组的类型由元素类型和数组大小共同决定:int array[5] 的类型为 int[5];C语言可通过typedef定义一个数组类型: void _cdecl Test01() { int arr[] = { 1, 2, 3, 4, 5 }; //定义一个数组类型ARRAY_TYPE,可以把int arr[5]看成一个整体、一个ARRAY_TYPE类型的变量 typedef int(ARRAY_TYPE)[5]; ARRAY_TYPE myArr; for (int i = 0; i < 5; i++) { myArr[i] = i + 10; } for (int i = 0; i < 5; i++) { printf("%d\n", myArr[i]); } //对数组名取地址代表指向整个数组的指针 //1. *pArr 表示拿到pArr指针指向的整个数组(即数组名,代表数组首地址) ARRAY_TYPE *pArr = &myArr; pArr = &arr; for (int i = 0; i < 5; i++) { printf("%d\n", *(*pArr + i)); } //2. 直接定义数组指针类型 ,可以把int arr[5]看成一个整体、一个(*ARRAY_POINTER)类型的变量,所以ARRAY_POINTER指针即指向该类型变量,即指向整个数组;*ARRAY_POINTER就是拿到整个数组(数组名) typedef int(*ARRAY_POINTER)[5]; ARRAY_POINTER pArray = &arr; //3. 直接定义数组指针类型 int(*pArrParam)[5] = &arr; } int main() { Test01(); system("pause"); return EXIT_SUCCESS; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。