--------【面试题剖析】
奔跑吧,行者
这个作者很懒,什么都没留下…
展开
-
strcpy和strlen找错
试题 1:void test1(){char string[10];char* str1 = "0123456789";strcpy( string, str1 );} 试题 2:void test2(){char string[10], str1[10];int i;for(i=0; i{ str1 = 'a';}strcpy(原创 2015-11-04 15:44:08 · 1043 阅读 · 0 评论 -
C/C++中static和const关键字的作用总结
static 关键字至少有下列 n 个作用: (1)函数体内 static 变量的作用范围为该函数体,不同于auto 变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值; (2)在模块内的 static 全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问; (3)在模块内的 static 函数只可被这一模块内的其它函数调用,这个函数的使用原创 2015-11-05 13:25:08 · 2234 阅读 · 0 评论 -
组织数据结构的能力
将 WAV 文件格式定义为结构体 WAVEFORMAT:typedef struct tagWaveFormat{char cRiffFlag[4];UIN32 nFileLen;char cWaveFlag[4];char cFmtFlag[4];char cTransition[4];UIN16 nFormatTag ;UIN16 nChannels;U原创 2015-11-04 17:03:11 · 760 阅读 · 0 评论 -
数组以及数组作为参数所占内存问题
以 下 为 Windows NT 下 的 32 位 C++ 程 序 ,请 计算sizeof 的值void Func ( char str[100] ){sizeof( str ) = ?}void *p = malloc( 100 );sizeof ( p ) = ? 解答:sizeof( str ) = 4sizeof ( p ) = 4 剖析:原创 2015-11-04 15:57:02 · 3049 阅读 · 0 评论 -
分别给出 BOOL,int,float,指针变量 与“零值”比较的 if 语句
试题 :分别给出 BOOL,int,float,指针变量 与“零值”比较的 if 语句(假设变量名为 var) 解答: BOOL 型变量:if(!var) int 型变量: if(var==0) float 型变量: const float EPSINON = 0.00001; if ((x >= - EPSINON) && (x 指针变原创 2015-11-04 15:51:12 · 3709 阅读 · 0 评论 -
struct和union计算方法
规则:1,对于union,对齐的大小是最大的基本元素的对齐大小;对象的大小必须是该基本元素大小的整数倍;2,对于struct,对齐的大小也是最大的基本元素的对齐大小,对象的大小需要考虑元素的对齐,并且需要是最大基本元素的整数倍;同时有#pragma pack修饰的情况,关于struct请详细参考另外一个帖子。3,这里所说的struct和union的对齐,是指其作为其他复杂对象中的元素的转载 2015-06-04 10:54:20 · 1090 阅读 · 0 评论 -
运算符*和指针以及前++、后++总结
*p++,由于++和*同优先级,结合方向自右而左,等价于*(p++)。*(p++)与*(++p)作用不同。若 p 的初值为 a,则*(p++)等价 a[0],*(++p)等价 a[1]。(*p)++表示 p 所指向的元素值加 1。原创 2015-06-04 10:43:42 · 1277 阅读 · 0 评论 -
swap( int* p1,int* p2 )找错
下面的一段程序有什么错误:swap( int* p1,int* p2 ){int *p;*p = *p1;*p1 = *p2;*p2 = *p;} 在 swap 函数中,p 是一个“野”指针,有可能指向系统区,导致程序运行的崩溃。在 VC++中 DEBUG 运行时提示错误“AccessViolation”。该程序应该改为:swap( int* p1,i原创 2015-11-04 15:52:29 · 10491 阅读 · 0 评论 -
宏定义的使用
写一个“标准”宏 MIN,这个宏输入两个参数并返回较小的一个。另外,当你写下面的代码时会发生什么事?least = MIN(*p++, b); 解答:#define MIN(A,B) ((A) MIN(*p++, b)会产生宏的副作用 剖析: 这个面试题主要考查面试者对宏定义的使用,宏定义可以实现类似于函数的功能,但是它终归不是函数,而宏定义中括弧中的原创 2015-11-04 16:07:51 · 1762 阅读 · 0 评论 -
内存操作GetMemory
试题 4:void GetMemory( char *p ){p = (char *) malloc( 100 );}void Test( void ){char *str = NULL;GetMemory( str );strcpy( str, "hello world" );printf( str );} 试题 5:char *GetMem原创 2015-11-04 15:39:41 · 739 阅读 · 0 评论