面试题 1

来源:互联网 发布:高考物理知乎 编辑:程序博客网 时间:2024/06/09 18:26

写出下面程序运行的结果

// test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <stdio.h>int value = 10;void foo(){static int value = 20;int a = value++;printf("a = %d\n",a);int b = ++value;printf("b = %d\n",b);}int _tmain(int argc, _TCHAR* argv[]){int *pValue;int value;if (pValue!=NULL){int value = 30;printf("value = %d\n",value);}pValue = &value;printf("pValue = %d,*pValue = %d\n",pValue,*pValue);foo();foo();return 0;}

因为pValue没有初始化,所以输出的30可能会有,也可能会没有。(面试的那个哥们问pValue没有初始化什么时候会为NULL,我还真不知道,有知道的说一下)

整型变量value没有初始化,所以*pValue是个随机的值。

至于先++还是后++,不同的编译器是不一样的,比如vs6,和vs10就不一样,按vs10的结果是 20,22,22,24.

下面是vs10的运行结果:



0 0
原创粉丝点击