指針的類型是怎么識別的
指針是一個地址,那么指針指向什么類型的空間是怎么識別的?需要存儲額外的信息嗎,比如說int a; ?int *p = &a;通過p來找到a時,p只是首地址,程序是怎么知道該從p開始向后找四個字節(jié)的,這個四個字節(jié)的長度信息是從哪來的?
指針是一個地址,那么指針指向什么類型的空間是怎么識別的?需要存儲額外的信息嗎,比如說int a; ?int *p = &a;通過p來找到a時,p只是首地址,程序是怎么知道該從p開始向后找四個字節(jié)的,這個四個字節(jié)的長度信息是從哪來的?
2015-12-19
舉報
2015-12-19
首先,int *p, *表示p是一個指針變量,int 表示指針p指向整形變量。
其次,C語言規(guī)定指針變量占四個字節(jié),四個字節(jié)里面(如p)存放的是指向的變量的地址值(a的地址值,好比家的門牌號)
2015-12-19
明白了,長度信息是編譯器根據(jù)類型做的,對吧?