指針是C語言的重要特性差导,指針是一種變量,它表示的不是數(shù)據(jù)的值猪勇,而是存儲著數(shù)據(jù)的內(nèi)存地址设褐。使用指針可對任意指定地址的數(shù)據(jù)進行讀寫。
Windows計算機上使用的程序通常為32位(4字節(jié))的內(nèi)存地址,此時指針變量的長度也是32位助析。
和普通變量定義不同的是犀被,在定義指針時,會在變量名前添加一個星號(*)外冀。
// C語言中定義不同類型的指針變量
char *d; // char類型的指針d的定義
short *e; // short 類型的指針e的定義
long *f; // long類型的指針f的定義
既然d寡键、e、f
用來存儲32位(4字節(jié))地址的變量雪隧,為什么又指定char(1字節(jié))西轩、short(2字節(jié))、long(4字節(jié))這些數(shù)據(jù)類型呢脑沿?
實際上藕畔,這些數(shù)據(jù)類型表示的是從指針存儲的地址中一次能夠讀寫的數(shù)據(jù)字節(jié)數(shù)。
指針的數(shù)據(jù)類型表示一次可讀寫的長度
假設(shè)d庄拇、e注服、f的值都是100,在這種情況下措近,使用d時就能夠從編號100的地址中讀寫一個字節(jié)的數(shù)據(jù)溶弟。使用e時就是2個字節(jié)(100地址和101地址)的數(shù)據(jù)。使用f時就是4個字節(jié)(100~103地址)的數(shù)據(jù)瞭郑。