-
1 # 石文優Winyoo
-
2 # EXCEL進階課堂
首先必須宣告,對於一個知識的理解,每個人都有自己的想法。我接下來要將的,也是自己的理解,所講的一般都是含義,而不是定義。
第一個問題:什麼是陣列?陣列是什麼?陣列是一組變數,而且這一組變數具有自己的特徵。
第二個問題:如何定義陣列?理解陣列的維度:陣列維度代表著陣列當中變數的個數,同時也相當於一支隊伍站位的行數與列數。
①如何定義一維陣列?
②如何定義二維陣列?
第三個問題:如何應用陣列?要應用陣列,必須弄清楚陣列下標的含義。
以上便是嚴Sir課堂對於這個問題的回答。
-
3 # MosquitoVon
首先,在標準C語言中,通常是不使用陣列的。在C語言中,資料陣列的標準使用方法是定義指標→為資料陣列申請記憶體空間→採用計算指標位移的方式定址。
靜態陣列也有采用“陣列”形式的,但需注意在函式間傳遞資料時需要使用&符獲取指標。否則無法進行資料傳遞。
一維資料陣列使用方法(長整數為例):
long *p0,*p1,i,x; /*宣告指標變數*/
p0=calloc(N*length(long)) ;/*申請記憶體空間*/
……
p1=p0+i; /*計算數值偏移*/
x=*p1; /*使用資料*/
……
cfree(p0); /*釋放記憶體 */
return;
多維資料陣列使用方法(長整數為例):
long *p0,*p1,i,x; /*宣告指標變數*/
p0=calloc(N*M*P*length(long)) ;/*申請記憶體空間*/
……
p1=p0+k*M*N+j*M+i; /*計算數值偏移*/
x=*p1; /*使用資料*/
……
cfree(p0); /*釋放記憶體 */
return;
注意,各維度定址變數範圍
i=0~N-1;
j=0~M-1;
k=0~P-1;
回覆列表
一、一維陣列,可以按照如下方式定義
資料型別(int,char,double,float,unsigned int,string 等) 變數名[長度]
1:int var[5];
其中,變數var 在記憶體中順序存放,如圖所示:
2:與指標結合進行定義 指標在C語言裡面是難點與重點,
int *p[3];\\p是一個由返回整型資料的指標所組成的陣列
int (*p)[3];\\p是一個指向由整型資料組成的數/組的指標
int *(*p(int))[3];\\p是一個引數為一個整資料且返回一個指向由整型指標變數組成的陣列的//指標變數
一位陣列初始化
a. int var[5]={0,1,2,3,4,5};//定義時直接初始化
b. 同時,一位陣列還可以透過 int var[]={0,1,2,3,4,5};進行,所需要的記憶體單元個數可以不給出。
c.string str[]={"hello world "};\\字串組數資料初始化
二、二維陣列
二維陣列每個元素還有兩個下標,一般可以將其視為矩陣,或者表格。其定義可以參照如下:
資料型別(int,char,double,float,unsigned int ) 變數名[長度][長度]
int var[2][2];其在記憶體中表示如圖所示;二維資料的第一個下標可視為行,第二個下標可視為列,
二維陣列的初始化:
a. int var[2][2]={0,1,
1,2};
b. int var[][2]={0,1,
1,2};//第二個長度可以省略
c.char str[][13]={"I","LOVE","C language!"};\\字串二位陣列,要注意在設定第二個長度時保證大於等於儲存的字串長度。
【注意】
a.不管如何定義變數都對映到物理儲存器的地址,而變數的值,是儲存地址對應儲存的資料。
b.在進行陣列定義時要注意資料型別的長度,常見資料型別如下,以64位os為例[1]:
【參考資料】
【1】http://www.runoob.com/cprogramming/c-data-types.html【DB/OL】