假如有以下声明
int ar1[2][3];
int ar2[3][2];
pa = ar1;
书中说“pa指向一个内含3个int类型元素的数组,ar2指向一个内含2个int类型元素的数组”
想问一下,怎么看出这个数组有多少个类型,类型是什么的呀。(>人<;)
pa 代表 ar1,ar1 [2][3] 其实是个两行,每行都是一个大小为三个元素的数组,也就是一个二维数组(可以类似看成一个矩阵,2,3表示行数和列数) ;ar2 [3][2]和他是同理的,类型就是数组前面定义的类型,因为数组所有元素类型必须一致,所以有且只会有这一个类型就是 int 类型 。
这里注意一下:我们定义二维数组时,可以定义成 ar1 [ ][3] 而不能定义成 ar1 [2][ ],其原因就是二维数组必须知道每一行有多少个元素,这是无法默认给定的,就是二维数组的一个单元,因此这里谈论 "ar1 内含3个int类型元素的数组" 和 “ar2 指向一个内含2个int类型元素的数组” 的 3 和 2 都取自于单元数组的元素个数。
ps:如有帮助,请点个采纳捏~
#include <stdio.h>
int main()
{
int arr1[3],arr2[2]; //这里定义了两个数组arr1 和 arr2,arr1数组有3个元素,arr2数组有2个元素。
//这两个数组的数据类型都是 int 型。
int *par1,*par2; //定义两个指针par1 和 par2,两个指针指向的数据类型都是 int 型。
par1 = arr1; //par1指针指向含有3个int型元素的数组 arr1.
par2 = arr2; //par2指针指向含有2个int型元素的数组 arr2.
return 0;
}