機器的儲存器通常由連續編號的儲存單元序列組成,這些儲存單元可以以單個或者相連成組的方式操縱;通常情況下,乙個位元組可以表示乙個字元,一對相連的儲存單元可以表示乙個短整數,而四個相鄰的位元組則構成乙個長整數;指標是能存放乙個位址的一組儲存單元,從本質上講,指標是乙個變數,而它的變數值是所指向物件(可以是變數、陣列、結構、函式等)的位址;指標一般佔四個位元組長度的儲存單元,所以sizeof(p)(p是指標)的值為4.
一、指標的宣告
int *pointer;
該語句將建立乙個指向int型的指標變數pointer但為對它進行初始化,不初始化指標是很危險的,因為它往往指向的是不確定的地方;所以總是應該在宣告指標的時候就對它進行初始化。例如:
int *pointer =null;或者int *pointer =0;
這樣進行初始化指標,就使它不會指向任何記憶體;
二、通過指標訪問變數值
int number =15;
int *pointer = &number;
int result = 0;
result = *pointer +5;
表示式*pointer將計算存放在 指標存放的位址 的變數值;
其中,*叫做 間接運算子,又叫做 提取運算子;
例項**:
#include
int main(int argc,char *argv)
{int number = 0;
int *pointer =null;
number =10;
printf("number's address is:%x./n" , &number);
printf("number's value is:%d./n" , number);
pointer = &number;
printf("pointer's value is:%x./n" , pointer);
printf("pointer's address is:%x./n" , &pointer);
printf("pointer's size is:%d./n" , sizeof(pointer));
printf("value pointed to is:%d./n" , *pointer);
程式執行結果
number's address is:12ff7c.
number's value is:10.
pointer's value is:12ff7c.
pointer's address is:12ff78.
pointer's size is:4.
value pointed to is:10.
press any key to continue
C語言學習筆記 指標與陣列
在c語言中,陣列與指標的關係非常密切,陣列下標所能完成的任何運算都可以用指標來實現 一般而言,指標運算比陣列下標運算的速度快,但用指標實現的程式理解起來稍微有一些難度 一 指標與一維陣列 int a 10 定義了乙個大小為10的整型陣列a int pa a 0 將指標pa指向陣列a的第0個元素,即p...
C語言學習筆記 函式與指標
1 c 語言中的函式有自己特定的型別,這個型別由返回值 引數型別和引數個數共同決定。如 int add int i,int j 的型別為 int int,int 2 c 語言中通過 typedef 為函式型別重新命名 typedef type name parameter list 如 typede...
C語言學習筆記 指標
若觸過組合語言,那麼理解學習c語言中指標就很簡單了。指標,在彙編裡面的表現形式,無非就是定址,直接定址和間接定址。先來學習下,c語言中的4大類資料型別 基本型別 int,long,float,char 構造型別 陣列,結構體 struct,聯合體 union,列舉型別 enum 指標型別 int l...