c++总结(一)

本文详细探讨了C++中类的内存对齐规则,解释了按1字节和4字节对齐时sizeof(CTest)的值。同时,介绍了C++中的static变量的作用,以及引用与指针的区别。还涉及头文件保护、include语法、实时系统特性、全局与局部变量内存区别、平衡二叉树概念和堆栈溢出原因。此外,文章讨论了预编译、const和volatile关键字的用途,以及数组、指针、静态变量与全局变量的内存分配。最后,讲解了如何用两个栈实现队列功能,以及C++中静态变量在不同模块的处理和链表节点删除的方法。
摘要由CSDN通过智能技术生成

1, 若char是一字节,int是4字节,指针类型是4字节,代码如下:

Class  CTest

{

Public:

CTest():m_chData(‘\0’),m_nData(0)

{

}

Virtual void mem_fun(){}

 

private:

   char m_chData;

   int m_nData;

   static char s_chData; //

};

Char CTest::s_chData=’\0’;

 

问:(1)若按1字节对齐sizeof(CTest)的值是多少? 9

    虚指针 (4)  +  char (1) + int(4) =9; 

   (2)若按4字节对齐sizeof(CTest)的值是多少? 12

  虚指针(4)+char(1+3)+int(4)=12;


static 的 作用

1)在函数体,一个被声明为staic的变量在这一函数被调用过程中维持其值不变。

2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但是不能被模块外其它函数访问。

它是一个本地的全局变量。

3)在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。


引用和指针的区别?

1)引用必须被初始化,指针不必。

2)引用初始化以后不能被改变,指针可以改变所指的对象。

3)不存在指向空值的引用,但是存在指向空值的指针。

指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序可读性差,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值