C语言中对一个指针变量取地址会怎样

本文通过C语言示例解释了指针与指针变量的区别:指针是地址,存储地址的变量是p;展示了指针p如何指向变量i的内存地址,并讨论了内存存储模式。
摘要由CSDN通过智能技术生成

对指针变量取地址得到的是指针变量本身的地址

指针和指针变量不同,指针是地址,而指针变量是存储地址的变量

用一个例子说明:

#include <stdio.h>

int main() {
   int *p;
   int i=0;
   p=&i;
   return 0;
}

(1)通过调试,程序走到 int *p;这一步,我们先看一下指针变量p自己本身的地址,下图中【1】处便是指针变量p自己本身的地址,【2】处是指针变量p被分配的存储单元,用来存放其他数据的地址

注:一个存储单元可以存储一个字节,也就是8个二进制位

(2)当程序走到 int i=0; 这一步时,我们看一下&i,下图中【1】处便是 i 的地址,【2】处是 i 被分配的存储单元,用来存放其他数据

(3)当程序走到 p=&i; 这一步时,可以看到指针变量p中的内容发生改变,其实就是上面 i 的地址0x000000000061fe14,如下图所示:

注:14fe6100 00000000是小端存储模式,即低字节在前,高字节在后

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值