一維陣列及其二維陣列的表示
陣列:儲存相同資料型別的集合
一維陣列:是指由相同資料型別的資料 經過 在同一方向 有序排列,一維陣列 結構單一,但卻是二維陣列、多維陣列的集合
二維陣列:一維陣列的疊加,將一維陣列看做是一個 “資料”,則將多個數據 依照一位陣列 在 另一方向上有序排列。
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; }
一維陣列: