sizeof(*v) 在 C 中是什么意思?
What sizeof(*v) means in C?
我有一段代码是这样的:
struct mystruct *v;
size_t sz;
sz = sizeof(*v);
sz
应该是什么?
sizeof(struct mystruct)
有什么区别?
堆栈中有 sz
(而不是 #define
)有什么意义?
sizeof
是一个编译时运算符,编译器将其替换为相关的数字。所以在运行时会有一个数字 - 没有指针。
sizeof(*t)
给出 T
的大小,其中 t
是 T*
。
所以让我们假设
char* c;
sizeof(c)
将给出 pointer 的大小,而 sizeof(*c)
将给出 character 的大小,即 1 个字节.
What sz is expected to be, given v is uninitialized?
sizeof
运算符不必对值操作数做任何事情 holds.What 重要的是类型。
此处 sizeof(*v)
将给出它指向的 struct mystruct
的大小。
What sz is expected to be?
结构类型的大小(以字节为单位),包括任何填充字节。
What's the difference with sizeof(struct mystruct)?
None,只是代码风格不同而已。
What's the point of having sz in the stack?
据说该值将被程序进一步使用..?你告诉我们。
我有一段代码是这样的:
struct mystruct *v;
size_t sz;
sz = sizeof(*v);
sz
应该是什么?
sizeof(struct mystruct)
有什么区别?
堆栈中有 sz
(而不是 #define
)有什么意义?
sizeof
是一个编译时运算符,编译器将其替换为相关的数字。所以在运行时会有一个数字 - 没有指针。
sizeof(*t)
给出 T
的大小,其中 t
是 T*
。
所以让我们假设
char* c;
sizeof(c)
将给出 pointer 的大小,而 sizeof(*c)
将给出 character 的大小,即 1 个字节.
What sz is expected to be, given v is uninitialized?
sizeof
运算符不必对值操作数做任何事情 holds.What 重要的是类型。
此处 sizeof(*v)
将给出它指向的 struct mystruct
的大小。
What sz is expected to be?
结构类型的大小(以字节为单位),包括任何填充字节。
What's the difference with sizeof(struct mystruct)?
None,只是代码风格不同而已。
What's the point of having sz in the stack?
据说该值将被程序进一步使用..?你告诉我们。