gpt4 book ai didi

c - 为什么地址类型转换为 char *?

转载 作者:行者123 更新时间:2023-12-04 12:28:16 25 4
gpt4 key购买 nike

我正在阅读不使用 sizeof() 找出变量大小的实现之一下面是实现

int i = 1;
size_t size = (char*)(&i+1)-(char*)(&i);
printf("%zi\n", size);

但我不明白为什么变量 i 的地址类型转换为 (char *) 而不是 (int *)。

任何人都可以帮助我了解这种类型在这里是如何工作的吗?

最佳答案

转换为 (char*) 意味着差异是在 char 指针算法 中计算的。生成的 size 将以 char(即字节)为单位,这是 sizeof 的自然单位。

关于c - 为什么地址类型转换为 char *?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23076754/

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