为指针赋值
int* p=(int*)4000
(int*)是强制类型转换,赋值后指针p指向地址4000,地址p就是地址4000
*p就代表地址4000开头的若干字节的内容
p是地址,*p是那个地址存的东西
注意:这里的若干字节是四个字节,即sizeof(int),因为int *p
一定要搞清楚p和*p!!!!!
指针用法
通过&让指针指向某一变量,注意更改值时,p,&a是地址,*p,a是内容!赋值时对应好
不同类型的指针,假如不进行强制类型转换,就不能相互赋值,
如:
int *pn;char* pc ,char c="www";
pn=pc;//失败
pn=&c;//失败
pn=(int*)&c;
int n=*pn//n值不确定,因为强制类型转换后,char是一个字节,int是四个字节,谁也不知道后三个填的是啥