我們不一樣之陣列和指標的差別

2021-10-06 17:45:14 字數 2336 閱讀 2207

陣列:陣列是用於儲存多個相同型別資料的集合。

陣列:只能乙個乙個元素的賦值或拷貝

指標:指標變數可以相互賦值

陣列

陣列所佔儲存空間的記憶體:sizeof(陣列名)

陣列的大小:sizeof(陣列名)/sizeof(資料型別)

指標

在 32 位平台下,無論指標的型別是什麼,sizeof(指標名)都是 4。

在 64 位平台下,無論指標的型別是什麼,sizeof(指標名)都是 8。

針指數組:

int *qishou[2];//定義乙個有兩個元素的指標陣列,每個元素都是乙個指標變數

int girl1= 167;

int girl2 = 171;

qishou[0] = &girl1;

qishou[1] = &girl2;

陣列指標

int (*p)[3]; //定義乙個指向三個成員的陣列的指標

訪問元素的兩種方式:

int a[4][3]=,,,

};p = &a[0];

陣列法: (*p)[j]

指標法: *((*p)+j)

陣列傳參時,會退化為指標!

(1)退化的意義:c 語言只會以值拷貝的方式傳遞引數,引數傳遞時,如果只拷貝整個數

組,效率會大大降低,並且在引數位於棧上,太大的陣列拷貝將會導致棧溢位。

(2)因此,c 語言將陣列的傳參進行了退化。將整個陣列拷貝乙份傳入函式時,將陣列名

看做常量指標,傳陣列首元素的位址。

#include

#include

#include

/*---------------《一維陣列傳參》---------------*/

/*方式一:形參不指定陣列大小

用陣列的形式傳遞引數,不需要指定引數的大小,

因為在一維陣列傳參時,形參不會真實的建立陣列,

傳的只是陣列首元素的位址。

*/void

method_1

(int arr,

int len)

}//方式二:指定陣列大小

void

method_2

(int arr[10]

)}void

method_3

(int

*arr,

int len)

}int

main102

(void);

method_1

(arr,10)

;printf

("------華麗的分隔線------\n");

method_2

(arr)

;printf

("------華麗的分隔線------\n");

method_3

(arr,10)

;system

("pause");

return0;

}/*---------------《指標陣列傳參》---------------*/

//方式一:指標陣列傳參,宣告成指標陣列,不指定陣列大小

void

method_4

(int

*arr,

int len)

}//方式二:指標陣列傳參,宣告成指標陣列,指定陣列大小

void

method_5

(int

*arr[10]

)}//方式三:二維指標傳參

//傳過去是指標陣列的陣列名,代表首元素位址,而陣列的首元素又是乙個指標

//就表示二級指標,用二級指標接收

void

method_6

(int

**arr,

int len)

}int

main()

;int

*arr_p[10]

=;for(

int i =

0; i <

10; i++

)method_4

(arr_p,10)

;printf

("------華麗的分隔線------\n");

method_5

(arr_p)

;printf

("------華麗的分隔線------\n");

method_6

(arr_p,10)

;system

("pause");

return0;

}

我們不一樣

前輩們因自身實際的種種因素的影響而產生的認知,並不一定適用於我們自身。你可能從來不會去想乙個問題 你的觀點,來自 其實,它們絕大部分來自網路,它們或多或少地蠶食了你的判斷力。未來的路要怎麼走,沒有對與錯。有的,只是每乙個選擇所需要承擔的責任。我不想面臨,後之視今亦猶今之視昔的悲哀。我希望,未來回首,...

我們不一樣

這麼多年的兄弟 有誰比我更了解你 太多太多不容易 磨平了歲月和脾氣 時間轉眼就過去 這身後不散的筵席 只因為我們還在 心留在原地 張開手 需要多大的勇氣 這片天 你我一起撐起 更努力 只為了我們想要的明天 好好的 這份情好好珍惜 我們不一樣 每個人都有不同的境遇 我們在這裡 在這裡等你 我們不一樣 ...

不一樣又不一樣的 木板接水

空地上豎立著n個從左到右排列的木板,它們可以把水擋住,但溢位最邊上木板的水將會流到空地上。已知木板間距都是單位1,現給定每個木板的高度,請求出總共能接住的水量?說明一點,這裡只考慮間距 寬度 和高度,不考慮第三個維度,因此水量是平方單位。木板高度分別是2,1,3,那麼我們可以接住2 2 4平方單位的...