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

 

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值