gpt4 book ai didi

C++地址值和sizeof

转载 作者:太空狗 更新时间:2023-10-29 23:27:48 25 4
gpt4 key购买 nike

在我的电脑上。当我测试代码时:

int main()
{
int i=123;
return 0;
}

使用

g++ -g test.cpp -o test

我输入的时候发现:

print &i            output: 0x7fffffffe18c
print sizeof(&i) output: 8

一头雾水,i的地址是6字节,为什么sizeof(&i)==8?非常感谢

最佳答案

当你这样做时,你得到的是 i 的地址

print &i            output: 0x7fffffffe18c

输出显示变量 i 存储的地址编号,但 printf 将删除前导零,因此您只能看到 0x7fffffffe18c 而不是 0x00007ffffffffe18c,您可以使用调试器来验证它

当你调用 sizeof(&i) 时

print sizeof(&i)    output: 8

你得到 8 个字节,因为你得到的是地址的大小而不是变量 i 的大小,如果你想得到变量大小就这样做

sizeof(i)

关于C++地址值和sizeof,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30770168/

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