現在有一種在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中編譯調試一次。