假设有一个结构fakes
:
struct fakes {
....
};
还有一个指针:
struct fakes *fakes;
我想知道sizeof(struct fakes)
和sizeof(*fakes)
是否相同。
答案 0 :(得分:3)
我想知道
sizeof(struct fakes)
和sizeof(*fakes)
是否相同。
是的,他们保证是一样的。
答案 1 :(得分:0)
是。这些都是一样的。
sizeof
用于确定数据类型在内存中占用的空间量。编译器实际上只关心类型,而不是它的特定实例(因为所有实例都应占用相同的空间量)。因此,sizeof(struct fakes)
保证与sizeof(*fakes)
相同。
答案 2 :(得分:0)
当sizeof运算符应用于类,结构或联合类型时,结果是该类型的对象中的字节数,以及为对齐单词边界上的成员而添加的任何填充。结果不一定与通过添加各个成员的存储要求计算的大小相对应。
当sizeof运算符应用于引用时,结果与将sizeof应用于对象本身的结果相同。
检查一下,