面试经验|Visual C++:深圳冰川网络

自我介绍

你期望的薪资

结构体所占存储空间

http://www.cnblogs.com/-zhangnian/p/6422559.html

空的类是会占用内存空间的,而且大小是1,原因是C++要求每个实例在内存中都有独一无二的地址。

(一)类内部的成员变量:

普通的变量:是要占用内存的,但是要注意对齐原则(这点和struct类型很相似)。

static修饰的静态变量:不占用内容,原因是编译器将其放在全局变量区。

(二)类内部的成员函数:

普通函数:不占用内存。

虚函数:要占用4个字节,用来指定虚函数的虚拟函数表的入口地址。所以一个类的虚函数所占用的地址是不变的,和虚函数的个数是没有关系的

再举个例子,看看在默认对齐规则下,各结构体成员的对齐规则:  

  1. //by www.datahf.net zhangyu
  2. typedef struct A 
  3.     char c;  //1个字节
  4.     int d;  //4个字节,要与4字节对齐,所以分配至第4个字节处
  5.     short e;  //2个字节, 上述两个成员过后,本身就是与2对齐的,所以之前无填充
  6.  }; //整个结构体,最长的成员为4个字节,需要总长度与4字节对齐,所以, sizeof(A)==12 
  7. typedef struct B 
  8.     char c;  //1个字节
  9.     __int64 d;  //8个字节,位置要与8字节对齐,所以分配到第8个字节处
  10.     int e;  //4个字节,成员d结束于15字节,紧跟的16字节对齐于4字节,所以分配到16-19
  11.     short f;  //2个字节,成员e结束于19字节,紧跟的20字节对齐于2字节,所以分配到20-21
  12.     A g;  //结构体长为12字节,最长成员为4字节,需按4字节对齐,所以前面跳过2个字节,
  13. //到24-35字节处
  14.     char h;  //1个字节,分配到36字节处
  15.     int i;  //4个字节,要对齐4字节,跳过3字节,分配到40-43 字节
  16. }; //整个结构体的最大分配成员为8字节,所以结构体后面加5字节填充,被到48字节。故:
  17. //sizeof(B)==48;

    具体的分配图如下:

 https://img-blog.csdn.net/20170216094637189?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjU4Njc2NDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

设计模式

Map的erase方法

常量指针与指针常量

Class A{

  Int value {return 0;}

}

A* const p1=new A();

Const A* p2=new A();

Cout<<p1->value<<p2->value()<<endl;

P1=p2;

A* const p3=0;

Cout<<p3->value();

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

haimianjie2012

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值