现在有一种在Windows下运行的一种叫Win-TC的C语言源代码编辑工具以小巧的身躯和强大的功能受到很多网友的青睐。但最近有位朋友给我一个关于指针的源程序。用Win-TC编译和英文版TC2.0编译出来的结果截然不同,请看下面的代码:
#include "stdio.h"
main(){
int a=100,*pa=&a,*pp=pa;
printf("a=%d,pa=%d,pp=%d",a,pa,pp);
getch();
}
在Win-TC中编译运行,结果为:a=100,pa=4040,pp=4295。这个结果让人哭笑不得。
在英文版TC2.0中编译运行,结果为:a=100,pa=-60,pp=-60。这个结果很正常。
但是把 printf("a=%d,pa=%d,pp=%d",a,pa,pp); 改成 printf("a=%d,pa=%d,pp=%d",a,*pa,*pp); 则两个编译运行结果相等,都是a=100,pa=100,pb=100。到底问题出在哪里,也许只有Win-TC的作者才能解释。所以劝一下那些用WIN-TC的朋友们写好程序后最好再到英文的TC中编译调试一次。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/