多維陣列本質小結

2021-10-07 16:24:02 字數 1231 閱讀 1692

#include

"stdio.h"

#include

"stdlib.h"

#include

"string.h"

void

main33()

;//1 myarray陣列首元素的位址吧

//2 myarray是乙個常量指標 3k

//3 myarray是乙個陣列指標

int myarray[3]

[5];

//直接定義乙個陣列指標

int(

*p)[5]

=&a;

for(i=

0; i<

5; i++

)//&a 步長 5*4 = 20;

for(i=

0; i<

3; i++)}

printf

("myarray:%d myarray+1:%d\n"

, myarray, myarray+1)

;printf

("\n&a:%d &a+1:%d \n"

,&a,

&a+1);

p = myarray;

for(i=

0; i<

3; i++)}

system

("pause");

}//1 不管是幾維陣列,都是線性儲存的。所以會存在多維陣列做函式引數,退化問題

//2 多維陣列做函式引數 二維陣列,能勉強表達出來。但是三維陣列,四維陣列,,就表達不出來了。

//結論:指標做函式引數,有效記憶體維數,只到2級。。如果你看到3級指標 4級指標,它表示的不是記憶體的維數

intprintf2array

(int

*a,int num)

}//int myarray(int a[5])

void

main35()

} p =

(int

*)myarray;

printf2array

(p,3*5

);system

("pause");

}

1、不管是幾維陣列,都是線性儲存的。所以會存在多維陣列做函式引數的退化問題

2、多維陣列做函式引數 二維陣列,能勉強表達出來。但是三維陣列,四維陣列,,就表達不出來了。

結論:指標做函式引數,有效記憶體維數,只能表達2級。。如果看到3級指標 4級指標,它表示的不是記憶體的維數。

陣列型別和多維陣列本質

1 元素型別角度 陣列是相同型別的變數的有序集合 測試指標變數占有記憶體空間大小 2 記憶體角度 聯絡的一大片記憶體空間 陣列初始化 陣列元素的個數可以顯示或隱式指定,分析陣列初始化與memset比較。與memset 耗時差不多,但 可能有移植性問題,雖然絕大多數編譯器看到 都是將陣列全部初始化為0...

陣列 多維陣列本質和字元陣列語法

初學c語言,記錄一下學習過程。引入陣列的原因 要宣告很多變數 程式冗長 可擴充套件性差 陣列必須先定義,後使用 只能逐個引用陣列元素,不能一次引用整個陣列 int a 5 a 4 10 可以沒初始化陣列就對其中的乙個元素賦值 但不能a 5 10,這樣就越界了。排序的應用例項 待補充 多維陣列本質是一...

多維陣列名的本質

define crt securre no warnings include include include 多維陣列列印函式 void printarr1 int a 3 5 多維陣列列印函式 void printarr2 int a 5 多維陣列列印函式 void printarr3 int a...