几个演员的大小

tru*_*rue 2 c++ casting sizeof

为什么函数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;
}
Run Code Online (Sandbox Code Playgroud)

上面的例子输出

4
1
4
64
Run Code Online (Sandbox Code Playgroud)

Jos*_*eld 6

sizeof会告诉你给定表达式类型的大小.在sizeof(NX)sizeof(&ss),结果是4,因为你的机器上的指针占用4个字节.因为sizeof(*NX),你正在取消引用a char*,它给你一个char,char占用1个字节(并且总是这样),所以你得到输出1.当你这样做时sizeof(ss),ss是a stringstruct,所以你得到a的大小stringstruct,这似乎是64个字节.