您的位置:首页 > 编程语言 > C语言/C++

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

2015-02-25 16:05 190 查看

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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: