gpt4 book ai didi

c++ - 几个铸件的尺寸

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

为什么函数 sizeofstruct 本身上使用时返回的大小不同?

我需要转换它,因为我正在处理一个 winsock 程序。感谢您的帮助,真的。

#include <iostream>
#include <string>
using namespace std;
struct stringstruct
{
string s1;
string s2;
};
int main()
{
stringstruct ss = {"123","abc"};
char *NX = (char*)&ss;
cout << sizeof(NX) << endl << sizeof(*NX) << endl;
cout << sizeof(&ss) << endl << sizeof(ss) << endl;
getchar();
return 0;
}

上面的例子输出

4
1
4
64

最佳答案

sizeof 会告诉您给定表达式类型的大小。在 sizeof(NX)sizeof(&ss) 中,结果都是 4,因为您机器上的指针占用 4 个字节。对于 sizeof(*NX),您取消引用了一个 char*,它给您一个 char,和一个 char 占用 1 个字节(而且总是占用 1 个字节),所以你得到输出 1。当你执行 sizeof(ss) 时,ss 是一个 stringstruct,所以你得到一个 stringstruct 的大小,它看起来是 64 字节。

关于c++ - 几个铸件的尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16669360/

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