数组:存储相同数据类型的集合
一维数组:是指由相同数据类型的数据 经过 在同一方向 有序排列,一维数组 结构单一,但却是二维数组、多维数组的集合
二维数组:一维数组的叠加,将一维数组看做是一个 “数据”,则将多个数据 依照一位数组 在 另一方向上有序排列。
n维数组:(n-1)维数组的叠加,叠加方式参照 二维数组 由 一维数组 叠加。
注:
(1)数据从 低地址 向 高地址 移动, 即 第一个 “数据” 在整个 数组中 地址最小。
(2)数组名 可以 表示 第一个 “数据” 的地址
代码如下:(结果为最后,并对其做解释)
头文件:“指针.h”
#pragma once
#include<stdio.h>
#define A 10
//一维指针
void point_1()
{
int i = 0;
int amarry[A];
for (i = 0; i < A; i++)
{
amarry[i] = i;
}
printf("\n\t 一维数组:\n");
printf("\tamarry[0]:%d 地址: %p sizeof(&amarry[0]):%d \n\n", amarry[0], amarry,sizeof(&amarry[0]));
printf("\t*(amarry):%d 地址: %p sizeof(&(*amarry)):%d \n\n", *amarry, &amarry[0],sizeof(amarry));
}
void point_2()
{
int i = 0;
int j = 0;
int count = 0;
int amarry_2[A][A];
for (i = 0; i < A; i++)
{
for (j = 0; j < A; j++)
{
amarry_2[i][j] = count++;
}
}
printf("\n\t 二维数组:\n");
//打印数组的首地址
printf("\n\tamarry_2[0][0]:%d 地址: %p sizeof(&(amarry_2[0][0])): %d \n\n", amarry_2[0][0], &(amarry_2[0][0]),sizeof(&amarry_2[0][0]));
printf("\t*(amarry_2[0]):%d 地址: %p sizeof(amarry_2[0]+0): %d \n\n", *amarry_2[0], amarry_2[0], sizeof(amarry_2[0]));
printf("\t*(*amarry_2+0):%d 地址: %p sizeof(amarry_2): %d \n\n", **amarry_2, amarry_2, sizeof(amarry_2));
}
void test()
{
point_1();
}
源文件:test.c
#include"指针.h"
#include<Windows.h>
int main()
{
test();
system("pause");
return 0;
}
一维数组: