C語言學習(3):陣列和指標
阿新 • • 發佈:2018-12-31
前言
上一篇部落格講了指標的用法,本章來講陣列。首先明確一點,陣列也是指標。
正文
1、陣列的幾種定義
int arr[5]; //不初始化
int arr[5] = {1,2,3,4,5}; //初始化
int arr[] = {1,2,3,4,5}; //如果初始化有值,可不寫元素數目
2、陣列名就是一個指標。
陣列名arr是一個指標,值是陣列中第一個元素的地址。找到第一個元素的地址後,之後元素的地址就找到啦。
arr[0]是第一個元素的值,arr[2]是第三個元素的值,中括號中的數字就是偏移量。
因為陣列名arr是一個指標,其值是第一個元素的地址,所以下面這個等式總是正確的:
arr == & arr[0];
3、既然陣列是指標,就可以在其他函式中讀寫本函式的陣列元素值。
同前一篇講指標一樣,可以將陣列名(即陣列第一個元素的地址)傳給其他函式,其他函式拿到陣列的地址就能對其元素進行讀寫了。
4、陣列指標運算
int arr[] = {1,2,3};
int* iptr = arr; // 將陣列第一個元素的地址賦值給iptr
iptr++; // 指標加1,指向陣列的下一個元素。
int tmp = *iptr;
總結
陣列也是指標,函式間傳遞陣列名,就是傳遞地址,讀寫即是對記憶體的讀寫。