一道C笔试题
	
    
    
	Author: Scurffybear Date: 2009.09.08
最近在招新人,下面是一道C的面试题,面试的印度人中,没有一个人做对,我粗看了一下题,在没有看答案前,我自己也做错了,嗯,是的,没啥不好意思的,我觉得这个题目很容易使人产生误解,又或者择C有深厚功底的人能躲过这一个障眼法?
以下是题目,
main() 
{ 
        char *p1=“name”; 
        char *p2; 
        p2=(char*)malloc(20); 
        memset (p2, 0, 20); 
        while(*p2++ = *p1++); 
        printf(“%s\n”,p2); 
}  
写出打印内容.
我认为输出是'name',正确答案是输出空,我想了半天没想明白,最后把这段程序放在VC++进行单步跟踪才搞明白.事后想想这么简单的程序能够使几乎所有人都掉入同一个陷阱,实在很有意思.可能真正的高手可能不屑于这一信手拈来的小问题,但是确实是让我们这些半吊子做技术很容易犯错误的一个小问题.也说明公司吸引力太差,没有基础扎实的人前来应聘,不过,对于技术支持非研发,真正在工作中基本不会用到这方面的知识.
    
     
	
	
    
    
	相关文档:
        
    
    
1,防止一个头文件被重复包含 
#ifndef COMDEF_H 
#define COMDEF_H 
//头文件内容 
#endif 
2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。 
typedef unsigned char      boolean;     /* Boolean value type. */ 
typedef  ......
	
    
        
    
    char* my_strrev( char* string )
{
 char *left, *right, ch;
 left = right = string;
 while( *right++ != '\0');
 right -= 2;
 while( left<right )
 {
  ch = *left;
  *left = *right;
  *right = ch;
  ++left; --right;
&n ......
	
    
        
    
    在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。
(1)先来介绍它的第一条也是最重要的一条:隐藏。
当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。
下面是a.c的内容
ch ......
	
    
        
    
    网马加密中,目前有个function(p,a,c,k,e,d)的,非常讨厌,我也是深恶痛绝,记得我刚开始碰到它的时候,拼命地读函数,那个叫痛苦啊,磕磕绊绊地勉强搞了出来。今天,突然看见了function(p,a,c,k,e,d)的解密代码,高兴都来不及
<script> 
a=62; 
function encode() { 
var code = document.getElementById('code' ......