C语言中的指针和地址的区别

                            C语言中指针和地址的区别

                                    

 

 指针变量p的值为0x200;*p是指向地址为0x200的指针,也就是取存放在地址为0x200中的值,即为100;所以*p=a=100。

 

 

 

 如上图所示,指针变量p的值为0x200;*p则为地址0x200所存放的值0x300;**p则是为地址0x300所存放的数值a;所以**p=100.

 

代码分析:

#include <stdio.h>

int main(int argc,char ** argv)

{

int a=100;

int *p;

p=a;

//*p=a;

//P=&a;

//*p=&a;

printf(“%d\n”,p);

printf(“%d\n”,*p);

return 0;

}

 

p=a;

P等于整型变量a的值100

*p等于存放在地址编号为100中的数值。

 

*p=a;

P为内存新分配的存储地址的IP值,存在着随机性

*p等于100

p=&a;

P等于存放整型变量a的地址;

*p等于整型变量a

 

*p=&a;//把存放整型变量a的地址赋值给*p,同时会重新分配存储空间和对应的存储空间IP地址

 

P等于内存新分配的存储IP地址值,存在着随机性

*p等于存放在新分配的IP地址中的数值,数值等于整型变量a

 

 

猜你喜欢

转载自blog.csdn.net/XJH0918/article/details/43938007