%p專門用來打印變量的以十六進制表示的地址:
#include<iostream> using namespace std; int main() { int a = 10; printf("a的地址是(用十進制表示):%d\n", &a); printf("a的地址是(用十六進制表示):%p\n", &a); system("pause"); return 0; }
運行結果:
用計算器驗證一下:
利用指針操作一切定義在內存中的變量:
1.先定義的變量掉到棧的最底部,后定義的變量在棧的上部分,下面的地址大,上面的地址小;
2.相鄰定義的變量之間隔了三個整型變量所占的字節數,即隔了12個字節;
3.變量名都是首地址的別名;
4.指針即首地址;
5.指針的數學運算帶類型,即p-1相當於p在棧內向上移動4個字節(即一個整型變量的內存寬度),即p+1相當於p在棧內向下移動4個字節(亦即一個整型變量的內存寬度);
6.讓指針變量先任意指向一個變量,然后通過指針的上下移動可以隨便操作所有變量;
7.VS2013相鄰整型變量之間相隔8個字節(即兩個整型變量的寬度)。