暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
50个C、C++面试题.pdf
277
26页
1次
2021-02-22
40墨值下载
C/C++经典面试题
面试题 1:变量的声明和定义有什么区别
为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以在多个地方声明,
但是只在一个地方定义。 extern 修饰的是变量的声明说明此变量将在文件以外或在文件后面部
定义。
说明:很多时候一个变量,只是声明不分配内存空间,直到具体使用时才初始化,分配内存空间,
如外部变量。
面试题 2:写出 bool int float、指针变量与“零值”比较的 if 语句
bool 型数据:
if( flag )
{
A;
}
else
{
B
}
int 型数据:
if( 0 != flag )
{
A;
}
else
{
B
}
指针型数:
if( NULL == flag )
{
A;
}
else
{
B
}
float 型数据:
if ( ( flag >= NORM ) && ( flag <= NORM ) )
{
A
2
}
注意应特别注意在 int指针型变量和“零值比较的时候,“零值放在左边这样当把==
误写成=”时,编译器可以报错,否则这种逻辑错误不容易发现,并且可能导致很严重的后果。
面试题 3sizeof strlen 的区别
sizeof strlen 有以下区别:
sizeof 是一个操作符,strlen 是库函数。
sizeof 的参数可以是数据的类型,也可以是变量,而 strlen 只能以结尾\0‘的字符串作参数。
编译器在编译时就计算出了 sizeof 的结果。而 strlen 函数必须在运行时才能计出来。并且 sizeof
计算的是数据类型占内存的大小, strlen 计算的是字符串实际的长度。
数组做 sizeof 的参数不退化,传递 strlen 就退化为指针了。
注意有些是操作符看起来像是函数,有些函数名看起来又像操作符,这类容易混淆的名称一定
要加以区分,则遇到数组名这类特殊数据类型作参数时就很容易出错最容易混淆为函数的操作符
sizeof
面试题 4C 语言的关键字 static C++ 的关键 static 有什么区别
C static 用来修饰局部静态变量和外部静态变量、函数。而 C++中除了上述功能外,还用来定
义类的成员变量和函数。即静态成员和静态成员函数。
注意编程时 static 忆性,全局性的特点可以让在不同时期调用的函数进行通信传递信息
C++静态成员则可以在多个对象实例间进行通信,传递信息。
面试题 5:C中的 malloc 和C++中的 new 有什么区别
malloc new 有以下不同:
1newdelete 是操作符,可以重载,只能在 C++中使用。
2mallocfree 是函数,可以覆盖,CC++中都可以使用
3new 可以调用对象的构造函数,对应 delete 调用相应的析构函数。
4malloc 仅仅分配内存,free 仅回收内存,并不执行构造和析构函数
5newdelete 返回的是某种数据类型指针,mallocfree 返回的 void 指针
注意:malloc 的内存空间要 free 放,而 new 申请的内存空间要用 delete 释放,不要混用
因为两者实现的机理不同。
面试题 6:写一个“标准”宏 MIN
#define min(a,b)((a)<=(b)?(a):(b))
注意:在调用时一定要注意这个宏定义的副作用,如下调用:
((++*p)<=(x)?(++*p):(x)
p 针就自加了两次,违背了 MIN 的本意。
of 26
40墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜