指標
指標變數用於存放指向型別資料的位址,我們可以通過指標運算「*」解引用,引用指標變數所指向的資料。陣列例如,對指標變數p1,p2,p3,假定已有值,*p1,*p2,*p3代表指標變數p1,p2,p3所指向的資料,稱為指標變數所指向的變數,簡稱指標指向變數。如果指標變數p1,p2,p3分別存放整型變數i,j,k的位址,則p1指向i,p2指向j,p3指向k。
陣列用來儲存資料,定義乙個陣列arr[10],arr是這個陣列的陣列名,&arr表示整個陣列的位址,sizeof(arr)表示整個陣列的大小,其餘所有情況下arr都只代表陣列首元素的位址。陣列與指標的區別「指標陣列是陣列,是乙個存放指標的陣列
int *arr1[10];//存放整型指標的陣列
char* arr2[4];//存放字元指標的陣列
指標陣列中存放的指標還可以是二級指標,**指標等,例如:
char **arr3[3][5];//陣列中每乙個元素都是二級指標
陣列指標是指標,用來存放陣列位址
//乙個簡單的指標陣列的定義
int (*p)[10];
//解釋:p先和*結合,說明p是乙個指標變數,然後指標指向的是乙個大小為10個整型的陣列所以p是乙個指標,指向乙個陣列,叫陣列指標。
//注意:的優先順序高於*,所以必須加上()來保證p先和*結合。
陣列引數,指標引數
陣列傳參傳陣列首元素位址,一維陣列傳參傳的是陣列首元素位址,二維陣列傳的即第一行的位址一級指標傳參
#include
void print(int
*p, int sz)
}int main()
; int
*p = arr;
int sz = sizeof(arr)/sizeof(arr[0]);
print(p, sz);
return
0;}
二級指標傳參
#include
void test(int
** ptr)
int main()
當乙個函式的引數部分為一級指標的時候,函式能接受的引數有:整型變數的位址
整型指標變數本身
整型陣列
當乙個函式的引數部分為二級指標的時候,函式能接受的引數有:
二級指標變數本身
一級指標變數的位址
char*的陣列
函式指標是指標,用來存放函式的位址
把函式的位址存到乙個陣列中,這個陣列叫做函式指標陣列
int (*parr[10])();//定義乙個函式指標陣列
//parr先和結合,說明parr是乙個陣列,陣列的元素是int(*)()型別的指標
函式指標陣列的用途:轉移表
指向函式陣列的指標是乙個指標
,指標指向乙個陣列
,陣列的元素都是函式指標
。
深入了解C語言指標
目錄 注 指標的大小在32位平台是4個位元組,在64位平台是8個位元組。通過前面的知識我們知道,變數有不同的型別,如 整形,浮點型等。同理 指標也有不同的型別。指標的定義方式 變數型別 比如 int 程式設計客棧 pi null char pc null short ps null long pl ...
深入了解A
一 前言 在這裡我將對a 演算法的實際應用進行一定的 並且舉乙個有關a 演算法在最短路徑搜尋的例子。值得注意的是這裡並不對a 的基本的概念作介紹,如果你還對a 演算法不清楚的話,請看姊妹篇 初識a 演算法 這裡所舉的例子是參考amit主頁中的乙個源程式,使用這個源程式時,應該遵守一定的公約。二 a ...
深入了解A
一 前言 在這裡我將對a 演算法的實際應用進行一定的 並且舉乙個有關a 演算法在最短路徑搜尋的例子。值得注意的是這裡並不對a 的基本的概念作介紹,如果你還對a 演算法不清楚的話,請看姊妹篇 初識a 演算法 這裡所舉的例子是參考amit主頁中的乙個源程式,使用這個源程式時,應該遵守一定的公約。二 a ...