关于C++的一些很细节的东西,请大家帮忙

xxhhwt 2008-12-09 12:04:37
昨天,一个去面试的同学碰到了几道题,我们以前都没有见过,请大家帮忙看看。
题目一:if('A'==a)和if(a=='A')这两个判断哪个更好些?为什么?

题目二:atexit()的具体用法?

题目三:如下程序:
int vac=5;
int main()
{
int vac=3;
::vac++;
cout<<vac<<endl<<::vac<<endl;
}
这里就想问下::这个的具体用法。


知道的帮忙解答下,知道部分也行。
...全文
235 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
xueqiboy 2009-03-20
  • 打赏
  • 举报
回复
加油~~~~~~~~~~~~~~~~~
sweetyhappy 2008-12-09
  • 打赏
  • 举报
回复
::是域操作符。表示你现在使用的函数或者变量是属于前面的那一个域的。如
#include<iostream>
using namespace std;
int cou=3;
int main()
{
int cou=5;
::cou++;
cout<<cou<<endl<<::cou<<endl;
return 0;

}
输出 5 4

Mougou 2008-12-09
  • 打赏
  • 举报
回复
关于题目一,我的回答是:看“好”要怎么定义。从可读性角度来讲,if( a=='A' )更好一点,读起来自然。从防止出错的角度来讲,如1楼所说。
个人还是推荐前一种写法。
rejoice914 2008-12-09
  • 打赏
  • 举报
回复
atexit()干嘛的啊?
回帖是一种美德!传说每天回帖即可获得 10 分可用分!
jackzhhuang 2008-12-09
  • 打赏
  • 举报
回复
int nVal = 0;

int main()
{
int nVal = 0;
nVal = 9;//main的,局部的
::nVal = 8;//全局的
}
jl443960770 2008-12-09
  • 打赏
  • 举报
回复
第二个问题查MSDN就行了:
#include <stdlib.h>
#include <stdio.h>

void fn1( void ), fn2( void ), fn3( void ), fn4( void );

void main( void )
{
atexit( fn1 );
atexit( fn2 );
atexit( fn3 );
atexit( fn4 );
printf( "This is executed first.\n" );
}

void fn1()
{
printf( "next.\n" );
}

void fn2()
{
printf( "executed " );
}

void fn3()
{
printf( "is " );
}

void fn4()
{
printf( "This " );
}

Output:

This is executed first.
This is executed next.

奔跑哥 2008-12-09
  • 打赏
  • 举报
回复
::代表全局域.这个问题都不会,建议搂主多看看基础书籍.
roadblossom 2008-12-09
  • 打赏
  • 举报
回复
是比较基础!
nicky_zs 2008-12-09
  • 打赏
  • 举报
回复
这些问题都不知道还敢去面试???
wuyu637 2008-12-09
  • 打赏
  • 举报
回复
题目一:if('A'==a)和if(a=='A')这两个判断哪个更好些?为什么?
if('A'==a)这个好一点,因为可以避免出现少打一个=号的情况,如果你少打一个=号,编译会报错,另外一种情况,编译器检查不出来。



题目三:如下程序:
int vac=5;
int main()
{
int vac=3;
::vac++;
cout < <vac < <endl < <::vac < <endl;
}

全局作用域符号,表示这个变量是全局变量,或者全局作用域中的东西
xxhhwt 2008-12-09
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 hongzao 的回复:]
引用 12 楼 xxhhwt 的回复:
引用楼主 xxhhwt 的帖子:
我想问下大家,上面的这些东西大家说很基础,我想,一方面是自己大学三年没有好好学习的原因,另一个方面,
在我所看过的课本和一些C++的书籍里面,真的很少提到这些东西,请问下大家是在哪里看到的,以方便我们恶补
下,谢谢大家的回答。

不要偷懒了。拿本C++ Primer补补,不过有点厚.
[/Quote]


恩,这里多谢大家,可能是接触C++比较晚的缘故吧,以后会努力的。
不好意思,新人一个,没有多少分数。
  • 打赏
  • 举报
回复
都挺基础的。
qingkongyihe2008 2008-12-09
  • 打赏
  • 举报
回复
注意编写习惯和编写风格,尽量找到简单不易出错的方式
hongzao 2008-12-09
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 xxhhwt 的回复:]
引用楼主 xxhhwt 的帖子:
我想问下大家,上面的这些东西大家说很基础,我想,一方面是自己大学三年没有好好学习的原因,另一个方面,
在我所看过的课本和一些C++的书籍里面,真的很少提到这些东西,请问下大家是在哪里看到的,以方便我们恶补
下,谢谢大家的回答。
[/Quote]
不要偷懒了。拿本C++ Primer补补,不过有点厚.
hongzao 2008-12-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 nicky_zs 的回复:]
这些问题都不知道还敢去面试???
[/Quote]
说的好,我也觉得,现在怎么会这样呢,就业啊,不知道是天灾还是人祸.
xiangxuf 2008-12-09
  • 打赏
  • 举报
回复
推荐楼主到图书馆 借本下林锐写的《高质量C++/C编程指南》
至少应对笔试 还是可以的。。

xunfeng_2008 2008-12-09
  • 打赏
  • 举报
回复
基本知识不扎实,学习。。。。
xxhhwt 2008-12-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jl443960770 的回复:]
第二个问题查MSDN就行了:
#include <stdlib.h>
#include <stdio.h>

void fn1( void ), fn2( void ), fn3( void ), fn4( void );

void main( void )
{
atexit( fn1 );
atexit( fn2 );
atexit( fn3 );
atexit( fn4 );
printf( "This is executed first.\n" );
}

void fn1()
{
printf( "next.\n" );
}

void fn2()
{
printf( "executed " );
}

void fn3()
{

[/Quote]


恩,是这个意思,非常感谢。
xxhhwt 2008-12-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 xxhhwt 的帖子:]
昨天,一个去面试的同学碰到了几道题,我们以前都没有见过,请大家帮忙看看。
题目一:if('A'==a)和if(a=='A')这两个判断哪个更好些?为什么?

题目二:atexit()的具体用法?

题目三:如下程序:
int vac=5;
int main()
{
int vac=3;
::vac++;
cout < <vac < <endl < <::vac < <endl;
}
这里就想问下::这个的具体用法。


知道的帮忙解答下,知道部分也行。
[/Quote]


我想问下大家,上面的这些东西大家说很基础,我想,一方面是自己大学三年没有好好学习的原因,另一个方面,
在我所看过的课本和一些C++的书籍里面,真的很少提到这些东西,请问下大家是在哪里看到的,以方便我们恶补
下,谢谢大家的回答。
xxhhwt 2008-12-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyu637 的回复:]
题目一:if('A'==a)和if(a=='A')这两个判断哪个更好些?为什么?
if('A'==a)这个好一点,因为可以避免出现少打一个=号的情况,如果你少打一个=号,编译会报错,另外一种情况,编译器检查不出来。


题目三:如下程序:
int vac=5;
int main()
{
int vac=3;
::vac++;
cout < <vac < <endl < <::vac < <endl;
}

全局作用域符号,表示这个变量是全局变量,或者全局作用域中的东西
[/Quote]


惭愧.................
加载更多回复(1)

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧