1、字符数组以\0结尾,所以扫描到‘\0‘字符时就返回结果。
例题:
下面程序段的运行结果是:
char C[5]={‘a’,’b’,’\0’,’c’,’\0’};
printf(“%s”,C);
A、’a’’b’
B、ab
C、ab_c
D、ab_c_(其中_表示空格)
正确答案:B
2、&是按位与操作符
二进制与运算规则:1&1=1 1&0=0 0&0=0
3、
静态成员函数与普通成员函数的区别:
静态成员函数没有this指针,只能访问静态成员(包括静态成员变量和静态成员函数)。
普通成员函数有 this指针,可以访问类中的任意成员;而静态成员函数没有 this 指针。
A,静态成员属于类,而不是属于某个特定的对象,它是由该类的所有对象共享的,因此不能在类的构造方法中初始化
B,静态成员属于该类所有对象公有,可以被类对象调用
C,静态成员受private的限制
D,静态成员属于类和该类的所有对象,可以用类名直接调用
4、
auto 变量类型推演,
register 建议编译器将该变量放入cpu,
static 静态变量,
extern 声明变量,常用于多文件需要使用同一变量时
例题:为了提高程序的运行速度,在函数中对于整型或指针可以使用()型的变量。
正确答案: B
A、auto
B、register
C、static
D、extern
5、函数模板的格式如下:
Template 返回类型函数名(参数列表){函数体}
其中,class可以用typename关键字代替。
6、
int *p=null;是正确的定义吗
正确答案: B
A、是
B、否
null是java中的写法。C/C++中的空是NULL。
7、对齐规则
结构体的起始存储位置必须是能够被该结构体中最大的数据类型所整除。
每个数据成员存储的起始位置是自身大小的整数倍(比如int在32位机为4字节,则int型成员要从4的整数倍地址开始存储)。
结构体总大小(也就是sizeof的结果),必须是该结构体成员中最大的对齐模数的整数倍。若不满足,会根据需要自动填充空缺的字节。
结构体包含另一个结构体成员,则被包含的结构体成员要从其原始结构体内部最大对齐模数的整数倍地址开始存储。(比如struct a里存有struct b,b里有char,int,double等元素,那b应该从8的整数倍开始存储。)
结构体包含数组成员,比如char a[3],它的对齐方式和分别写3个char是一样的,也就是说它还是按一个字节对齐。如果写:typedef char Array[3],Array这种类型的对齐方式还是按一个字节对齐,而不是按它的长度3对齐。
结构体包含共用体成员,则该共用体成员要从其原始共用体内部最大对齐模数的整数倍地址开始存储。
————————————————
原文链接:https://blog.csdn.net/chenhanzhun/article/details/39641489
64位操作系统,不同类型变量对应的字节数为:
char :1个字节
char*(即指针变量): 8个字节
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 8个字节
long long: 8个字节
unsigned long: 8个字节
8、静态局部变量存在静态存储区,而局部变量存储在堆栈区,确切的说是栈区
9、
以下几类函数都不可声明为虚函数:
构造函数:虚函数是运行时绑定,需要对象,所以要先调用构造函数
静态成员函数:只有一份大家共享
内联函数:编译时就展开,而虚函数是运行时绑定
友元函数:友元函数不能被继承,所以不存在虚函数
原文:https://www.cnblogs.com/Xu-Hao/p/12995319.html