后天周天 2021-05-11 17:44 采纳率: 60%
浏览 41
已采纳

一个小问题希望大神解答

//图片截取自菜鸟教程 - 学的不仅是技术,更是梦想! (runoob.com)

 

#include <iostream>
using namespace std;
struct su {
    char   a;
    int    c;
    double b;
} de;

int main() {
    cout << sizeof(su) << endl;
    cout << sizeof(struct su) << endl;
    cout << sizeof(de) << endl;
    return 0;
}
/*
结果为
16
16
16*/

为什么三者都可以计算出所占的内存空间?

不是说“对类型不分配内存空间”吗?

是不是"结构体名"能直接当成"结构体变量"来使用?

“结构体类型名”和“结构体名”有什么区别吗?

  • 写回答

5条回答 默认 最新

  • qfl_sdu 2021-05-11 18:15
    关注

    类型是一类统称,比方说10和11都是int型,但是你不能说int型就等于10或者11.只能定义两个int型的变量,然后给他们赋值,比如,int a = 10; int b = 11;

    另外,类型是可以计算其占用的空间的大小的,一个int型的大小是4,上面定义的两个变量,a和b的大小也都是4。计算占用空间大小时,实际是先找到变量的类型,然后计算类型所占空间的大小。

    在你的例子中,可以理解为:结构体类型名就是你定义的su,de是它的一个别名。

    su tt;这句话中,su就是结构体类型名。tt就是su类型的一个变量。

    如有帮助,请采纳一下,谢谢。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?