<分区>
#include<stdio.h>
main()
{
int a[]={0,2,4,6,8};
int *ptr;
ptr=a;
printf("%d", *((char*)ptr+4));
}
*((char*)ptr+4))
这样做的目的是什么?
<分区>
#include<stdio.h>
main()
{
int a[]={0,2,4,6,8};
int *ptr;
ptr=a;
printf("%d", *((char*)ptr+4));
}
*((char*)ptr+4))
这样做的目的是什么?
最佳答案
它将指针转换为指向 char 的指针,然后添加 4 以查看内存中 4 char 后面的内容,最后取消引用结果。在 int
占用 4 个字节的典型情况下,它将查看数组中第二个 int
的第一个字节。 char
将被提升为 int
,传递给 printf
,然后打印出来。
关于c - `*((char*)ptr+4))` 在做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3163335/