金山软件的一道笔试题

今天下午参加了金山软件的笔试题,其中的一道选择题,让我对选项非常怀疑,回来在机器上试了试,才明白过来。
题目非常简单,
int main()
{
  
char ch;
  
char *pch=&ch;
  strcpy(pch,
"hello");
  printf(
"%s",pch);
}

上述代码输出结果。

当时我看到这个代码的时候,首先感觉到这个代码有问题的。因为pch是指向只有一个字符的的字符指针的,但是在strcpy中却用一个字符串给这个指针赋值了。由于指针可以操作内存的特点,知道肯定能将hello写入内存中的,所以对这两个问题非常模糊,最终选择了一个运行错误。

最后回来在机器上(vc6.0)中试了才发现,结果是输出hello,但是也运行错误!
posted @ 2009-10-12 23:12  文生  阅读(395)  评论(0编辑  收藏  举报