簡單來說,指針是一棟大樓的門牌號碼,它的對象是這棟大樓。
程序說明,主要是為程序中用到的變量開內存單元。
程序開頭的指針說明干什麼呢,也是開內存單元,為的是放門牌號碼。無論樓大樓小那怕是一間屋,它的指針,也就是門牌號碼,都一般大,只占一個內存單元。
如果程序中要用到釘了某門牌號的大樓的房間怎麼辦呢?
你要另給大樓分配內存才行。否則你只有門牌,沒有樓。
例如:
char *buff; -- buff是存放字符大樓門牌的單元
buff = (char *) malloc(32*sizeof(char)); -- 給釘了門牌號“buff“的大樓,建造32個放間,每個房間大小是一個字符。
程序中有時不用malloc來給指針分配對象,而用另一種方法,讓指針有個對象(或對象有個指針),例如:
float *p; -- p是存放浮點大樓門牌的單元
float a[100]; -- 浮點大樓
a[9] = 9.0;
p = &a[0];
printf("%f\n",p[9]);
上面的p = &a[0]; &a[0]算出浮點大樓的門牌號,把門牌號碼放到存放門牌號碼的單元p. 以後用p去找浮點大樓的放間。