指標
指標是指向一片記憶體空間的位址,指標變數是變數,是存放一片記憶體空間首位址的變數,我們一般所說的指標都是指標變數。
指標的定義及賦值:
型別說明 *變數名 列如 int *p;
區別 int *p=null 與 *p=null
int *p=null; //定義指標變數p,並且同時將p的值設定為0x00000000,不是把*p的值設定為0x0000000,這個過程叫做初始化
int *p;
*p=null; //
定義指標變數p,將*p的值設定為nill,即給p所指向的記憶體賦值null,但是p所指的記憶體可能是非法的,編譯可能會顯示記憶體訪問錯誤,那麼做出如下修改,給它一塊合法的記憶體。
int i=10
;int *p=&i;
*p=null; //
這時i中的值由10變成了0,而p值本身沒變,即記憶體位址沒有改變
指標的大小
int *p;sizeof(p); //
指標的大小根據計算機的位數確定,32位機大小為4個位元組,64位機大小為8個位元組。
指標運算
需要注意的是指標的型別,+1加的是乙個指標型別的大小。
int a[10];int *p=&a; //
+1,加了sizeof(int)*1個位元組,而不是加sizeof(int[10])*1個位元組
指標的使用型別
指標形式
陣列形式
int a[10];int *p=a;
p[0]=1; //
指標的陣列形式
*(p+1)=2; //
指標的指標形式
通過指標修改內容的彙編過程
1.找到指標變數的位址
2.通過指標變數的位址,找到內容的位址
3.通過位址找到內容
4.修改內容
小白對c語言陣列的基礎總結
陣列是一系列相同型別元素有序的集合。陣列的定義 一般形式為 型別符 陣列名 常量表示式 如 int a 5 表示陣列有五個元素,a 0 a 5 不存在元素a 5 注意 1.常量表示式中可以包含常量和符號常量,如 int a 3 5 2.c語言不允許對陣列的大小作動態定義。列如,下列對陣列的定義是不合...
對C語言指標的總結
指標 pointer 就是記憶體的位址,c語言允許用乙個變數來存放指標,這種變數稱為指標變數。指標變數可以存放基本型別資料的位址,也可以存放陣列 函式以及其他指標變數的位址。程式在執行過程中需要的是資料和指令的位址,變數名 函式名 字串名和陣列名在本質上是一樣的,它們都是位址的助記符 在編寫 的過程...
對C語言指標的總結
指標 pointer 就是記憶體的位址,c語言允許用乙個變數來存放指標,這種變數稱為指標變數。指標變數可以存放基本型別資料的位址,也可以存放陣列 函式以及其他指標變數的位址。程式在執行過程中需要的是資料和指令的位址,變數名 函式名 字串名和陣列名在本質上是一樣的,它們都是位址的助記符 在編寫 的過程...