1. 程式人生 > >C語言學習(3):陣列和指標

C語言學習(3):陣列和指標

前言

上一篇部落格講了指標的用法,本章來講陣列。首先明確一點,陣列也是指標。

正文

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;

總結

陣列也是指標,函式間傳遞陣列名,就是傳遞地址,讀寫即是對記憶體的讀寫。