易截截图软件、单文件、免安装、纯绿色、仅160KB

C/C++试题

1、bool、float、指针变量与"零值"比较的if语句?
答:
bool flag;   if(flag),if(!flag)
char *p;   if(p==NULL),if(p!=NULL)
float x;  
const float EPSILON = 1e-6;
if((x>=-EPSILON)&&(x<=EPSILON)) //(-0.000001~0.000001)
if((x<-EPSILON)&&(x>EPSILON)) //(+INFINITE~0.000001),(-0.000001~-INFINITE)
2、const有什么用途?
答:
(1)可以定义const 常量
(2)const 可以修饰函数的参数、返回值及函数的定义体。被const修饰的东西都受到强制保护,可以预防意外地被修改,能提高程序的健壮性。
3、在C++程序中调用被C编译器编译后的函数,为什么都要加extern "C" ?
答:
C++语言支持函数重载,C语言不支持函数重载。函数被C++编译器编译和被C编译器编译后生成的内部名字是不同的。假设某个函数的原型为:void foo(int x,int y);该函数被C编译器编译后的内部名字为_foo,面C++编译器则会产生像_foo_int_int之类的名字。C++提供了C连接交换指定符号 extern "C" 来解决名字匹配的问题。
4、类型转换:
double d = 100.25;
int x = d;
int *pInt = (int*)&d;
请问以下两个语句输出什么?
cout<< x <<endl;
cout<< *pInt <<endl;
答:
第一个输出 100,x取d的整数部分。
第二个结果不是100,*pInt等于d的前4个字节的数值,而不是d的整数部分。


相关文档:

关于delete C/C++ 指针

栈:函数调用的时候,在栈中保存局部变量和函数参数等。当函数返回时,自动清除栈。
自由存储区:也称为堆(heap),可以看作大量的内存段。通过 new 操作符分配的内存在堆中。程序结束之前不自动清除自由存储区。需要由程序来负责释放(delete)。
1.
对指向栈上内存的指针调用delete会导致程序Crash。
2. 
new 进 ......

C/C++运算符的优先级


Precedence Operator Description Example Overloadable Associativity
1
::
Scope resolution operator
Class::age = 2;
no
none
2
()
()
[]
->
.
++
--
const_cast
dynamic_cast
static_cast
reinterpret_cast
typeid
Function call
Member initalization
Array access
Member access from ......

ARM 标准C/C++ 运行时库


1.
运行时库的路径
指定方式:
(1)      
连接选项
–libpath
(2)      
环境变量
ARMLIB
优先级:
      
libpath
高于
ARMLIB
被指定的路径:
      
包含
a ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号