大话C指针理解初步
1. 内存地址和内存存储的内容
如果把内存看作成一排房子,那么每个房子都能容纳事物。而每个房子的房排号就是其地址,而房子里的事物为内存存储的数据。
2.如何理解*P和P还有&P
如果定义一个指针P的话,
P 代表的指针所指向的地址。
*P代表的是指针所指向的地址的内容。(*为间接访问符)
&P代表的是指针所在的地址。
举个例子
int iNumberA = 300;
float fNumberB = 9.14;
int *pNumberC = & iNumberA;
int * pNumberD = & iNumberB;
那么iNumberA、fNumberB 、pNumberC 和pNumberD等与多少呢?
iNumberA = 300,iNumberB = 9.14这个肯定是没有问题的。
pNumberC 和pNumberD 的值确是不知道的。系统随机分配的。
因为上面的第3行代码代表的是:把pNumberC指针所指向的地址内容=iNumberA的地址。上面的第4行代码代表的是:把pNumberD指针所指向的地址内容=iNumberB的地址。
而问题问的是pNumberC 和pNumberD所指向的地址。所以pNumberC 和pNumberD 的值确是不知道的。