gpt4 book ai didi

c++ - 指针输出让我困惑

转载 作者:行者123 更新时间:2023-11-30 21:43:24 25 4
gpt4 key购买 nike

我的代码在这里

int main()    
{
int a=300;
char *p=(char *)&a;
printf("%d\n",*p);
printf("%d",*++p);
}

输出为

44

1

任何人都可以解释一下吗?

最佳答案

众所周知,int 数据类型的大小为 2 字节4 字节,具体取决于您的系统。而char指针一次指向一个字节。

int a = 300; 的内存表示

ptr因此,char指针p仅指向第一个字节,如上图所示。

因此,第一次打印 44 输出。

那么,

printf("%d",*++p);

第一个p是增量,指针指向下一个(第二个)字节。因此,下一个字节输出是1

关于c++ - 指针输出让我困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44645847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com