我听到一句话 当定义一个结构体时。计算机里没有内存 声明时,会占用内存 这句话对吗

我听到一句话
当定义一个结构体时。计算机里没有内存
声明时,会占用内存
这句话对吗

这句话不对哟,声明一个结构体只是告诉编译器这个变量的归属,并不会进行内存分配,只有进行定义或初始化的时候才会进行内存分配

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7685760
  • 你也可以参考下这篇文章:【似现场教学】难人【我劝你擅长】我以卑微的口吻试图教会你,(更新中)
  • 除此之外, 这篇博客: 浮点型如何在内存中进行存储呢?中的 ,那么我们的浮点型在内存中到底是怎么进行存放的呢? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    根据国际标准IEEE(电气和电子工程协会) 754任意一个 二进制浮点数V可以表示成下面的形式: (-1)^S * M * 2^E
    1、(-1)^s表示符号位,当s=0V为正数;当s=1V为负数,这就和我们的符号位上,0代表正数,1代表负数对应起来了;
    2、M表示有效数字,大于等于1,小于2,因为对于二进制数来说,不可能>=2,所以,应该是小于2的;
    3、2^E表示指数位。
    如果任意一个二进制浮点数都可以写成(-1)^S * M * 2^E这个形式,,那么我只需要把S E M 这三个数存储起来即可,如果知道这三个数,我们完全可以倒推回去,从而先得到二进制浮点型
    然后再转化成十进制浮点数,这样就可以还原出来我的真实的十进制浮点数了;
    举例来说:
    为了方便讲解,在这里幂次方都使用 ^ 来表示,,不考虑 ^ 在C语言中是按位异或的情况;
    十进制的5.0,写成二进制是 101.0 ,相当于 1.01×2^2 ,即,(-1)^0 * 1.01 * 2^2    ,对于十进制浮点型数字来说,如果是123.123,就可以写成,1.23123 * 10^2,,所以,类比过来,
    对于二进制的浮点型数字,101.0,就可以写成:1.01* 2^2那么,按照上面V的格式,可以得出s=0M=1.01E=2
    十进制的-5.0,写成二进制是 -101.0 ,相当于 -1.01×2^2 ,即:(-1)^1 * 1.01 * 2^2    那么,s=1M=1.01E=2
  • 您还可以看一下 陈槐老师的零基础新手入门软件测试必知必会课程中的 系统讲解验收测试定义和验收需要注意的事项小节, 巩固相关知识点

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^