一道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++进行单步跟踪才搞明白.事后想想这么简单的程序能够使几乎所有人都掉入同一个陷阱,实在很有意思.可能真正的高手可能不屑于这一信手拈来的小问题,但是确实是让我们这些半吊子做技术很容易犯错误的一个小问题.也说明公司吸引力太差,没有基础扎实的人前来应聘,不过,对于技术支持非研发,真正在工作中基本不会用到这方面的知识.
相关文档:
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 ......
本文的内容是 Win32 API(特别是进程、线程和共享内存服务)到 POWER 上 Linux 的映射。本文可以帮助您确定哪种映射服务最适合您的需要。作者向您详细介绍了他在移植 Win32 C/C++ 应用程序时遇到的 API 映射。
概述
有很多方式可以将 Win32 C/C++ 应用程序移植和迁移到 pSeries 平台。您可以使用免费软件或者第三方工具来 ......
C/C++中Static的作用详述
1.先来介绍它的第一条也是最重要的一条:隐藏。
当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c.
下面是a.c的内容:
char a = 'A'; // global variable
void ......
- 要使用断言对函数参数进行确认
- 为了不必要的开销,可以仅使用断言,而不要return
网上有人写的strcpy代码,做了太多的出错处理,导致性能低下,其实没必要,用assert就行了,这样在debug模式下能捕捉错误,release下又不影响性能。
- 书上提供的memcpy的范例
void memcpy(void* pvT ......