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 的大小,其中 tT*。 所以让我们假设
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?

据说该值将被程序进一步使用..?你告诉我们。