当前位置:网站首页>C语言 指针的解引用详解
C语言 指针的解引用详解
2022-08-09 13:23:00 【东区东区!】
实例1:
#include <stdio.h>
int main()
{
int n = 0x11223344;
char *pc = (char *)&n;
int *pi = &n;
*pc = 0; //重点在调试的过程中观察内存的变化。
*pi = 0; //重点在调试的过程中观察内存的变化。
return 0;
}首先,十六进制在内存中逆向存储, 为: 44 33 22 11
第一种情况:当*pc = 0 pc为char类型只修改 1 字节,将44赋值为0
得到 0x11223300
第二种情况, 当*pi = 0 pi为int 类型修改4字节 结果为 0x00
实例2:
#include <stdio.h>
int main()
{
int arr[] = {1,2,3,4,5};
short *p = (short*)arr;
int i = 0;
for(i=0; i<4; i++)
{
*(p+i) = 0;
}
for(i=0; i<5; i++)
{
printf("%d ", arr[i]);
}
return 0;
}当指针为short 类型时,每次只修改2字节
对于数组arr来说,每个元素都占4字节
所以short类型的指针移动4次,共移动了8字节,只讲 1 , 2 修改为0其余不变
结果为 0 0 3 4 5
当题目变,我们把short 改为char ,共移动4字节, 结果为 0 2 3 4 5
改变为int , 共移动16字节,结果为 0 0 0 0 5
边栏推荐
猜你喜欢
随机推荐
vim常用命令
NC15 求二叉树的层序遍历
禁止输入(×),按键精灵小程序,快速上手
tkiner-canvas显示图片
ODA一体机有什么缺点
flink并行度知识点
opencv-matchTemplate 之使用场景为大图里面找小图
从房产中介到程序员--80后张江男
FFmpeg长时间无响应的解决方法
12. cuBLAS Development Guide Chinese version--Level-1 functions asum() and axpy() in cuBLAS
Q_07 词汇表
富媒体在客服IM消息通信中的秒发实践
RobotFramework 之 RF变量与标准库关键字使用
vs怎么用一个Button链接到另一个页面
pytest 之 fixture的调用
记一次 ERROR scheduler.AsyncEventQueue: Dropping event from queue shared导致OOM
数据增广
源码编译安装LAMP
一篇ngork直接使用
FFmpeg相机花屏花图问题解决方法









