day3

发布时间 2023-08-22 23:48:17作者: skural

 

 以下是几个用到volatile关键字修饰变量的情况: 
  设备的硬件寄存器(如:状态寄存器)  
  一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)   多线程应用中被几个任务共享的变量

操作字符串的函数

 

基类中,一旦某一个成员方法被定义为虚函数,同时,如果派生类中重载了这个函数,那么再通过派生类对象进行调用时,调用的是派生类中的成员函数,而不是基类中的成员函数

 

无符号整数永远大于0

[ 编 译器在为类对象分配栈空间时,会先检查类的析构函数的访问性,
其实不光是析构函数,只要是非静态的函数,编译器都会进行检查。如果类的析构函数是私有的,则编译器不会在栈空间上为类对象分配内存。 因此, 将析构函数设为私有,类对象就无法建立在栈(静态)上了,只能在堆上(动态new)分配类对象 。]

 

类中的静态成员在构造函数之前初始化。

 

数组做参数进行传递时,传递的是数组首元素的地址

 

选A 答案解析:类的大小只与成员变量(非static数据成员变量)和虚函数指针有关,还要考虑到对齐. 那么类A的大小等于4个字节 + 4个字节(考虑对齐) + 4个字节(指向虚函数的指针)=12字节; 类B的大小就是等于类A的大小12个字节. 因为在基类中存在虚函数时,派生类会继承基类的虚函数,因此派生类中不再增加虚函数的存储空间(因为所有的虚函数共享一块内存区域),而仅仅需要考虑派生类中添加进来的非static数据成员的内存空间大小。所以类B大小为12B

 

B 选项不能直接将字符串赋值给数组名, C 选项不能将两个字符数组直接互相赋值, D 选项中不能这样定义 char mark[] ,必须指定长度或者直接初始化。