存储变量的内存地址
变量是存放在内存中的,比如上面代码中的变量i和a,存放变量i和a的内存的首地址,就是变量i和a的地址。可以用&取址运算符获得。
而对于指针p来说,它本身也是一个变量,存放在内存中,只不过它的值是一个内存地址,这个内存地址,可以是其它变量的地址。
内存的地址可以分为有效地址,即这个所对应的内存是可访问的;还有无效地址,访问无效地址,会导致程序崩溃,比如NULL地址就是一个无效地址:
#define NULL ((void *)0)
因此,试图去访问无效地址所指内存,会导致程序崩溃。