gpt4 book ai didi

c - 结构的内存类型和 sizeof tip

转载 作者:太空宇宙 更新时间:2023-11-04 08:30:51 28 4
gpt4 key购买 nike

结构

struct school {
char*name;
int student;
int teacher;
int worker;
};

其实我有两个问题..

A)是x.y和x->y语法之间的区别,即指针指向堆内存中的地址,其他语法处理堆栈或者它不是真的,指针也可以用于结构中以指向堆栈中的地址,这两种语法之间的实际区别是什么?

B) 当我尝试打印结构变量的大小时,它打印的是 24 而不是 20,这可以解释一下吗?

最佳答案

A) x.yx 是结构类型的变量时使用。当x 是指向结构类型的指针时,使用x->y。它不必指向堆,它可以指向一个变量。所以如果你有:

struct school school_var;
struct school *school_ptr = &school_var;

然后 school_ptr->studentschool_var.student 相同。

B) 变量可以有额外的填充,这包含在 sizeof 中。

关于c - 结构的内存类型和 sizeof tip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28423606/

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