c语言 tc 编译,用Win-TC编译与用TC2.0编译的差异

现在有一种在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中编译调试一次。

———————————————————— ——————–

网友xingchenyiyi 评:

看到了“用Win-TC编译与用TC2.0编译的差异”这片文章。我就文中作者的用法问题作

一解释!程序:

int a=100,*pa=&a,*pp=pa;

printf(“a=%d,pa=%d,pp=%d”,a,pa,pp);

int a=100很规则,但”&a”代表一个地址,”&”是取地址符号,取得了存储值是100的内

存地址。而”*pa”的用发表示指针地址”pa”中存储的值。”int *pa;”表示指针类型pa中

存储的值是整形。也就是说它可以直接等于常量。此时”*pa=%d”这种用法是把”a”的地

址存储进了”pa”.”*pp=pa”这个用法和前面的一样是把”pa”的地址存储进了”pp”.其中”pp”,”pa”都表示地址,而”*pa”,”*pp”都表示具体的值。打印输出的时候

“printf(“a=%d,pa=%d,pp=%d”,a,pa,pp);”,大家可以看到a是代表数值的,”pa、pp”都代表的是地址,此刻输出就成了”pa、pp”的临时地址。所以会看到”pa=4040,pp=4295″这样的输出是正常的,当然英文版的输出结果”pa=-60,pp=-60″,结果是负值,表示有错误。在win-tc下用结果是”pa=-70,pp=-70″。正确的打印输出格式:”printf(“a=%d,pa=%d,pp=%d”,a,*pa,*pp); ”。”*pa,*pp”两个代表数值。结果输出正确。这样才可以和”%d”形成对应关系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WIN-TC免费版是一个turbo C2 WINDOWS平台开发工具,最大特点是支持中文界面,支持鼠标操作,程序段复制,WIN-TC免费版为初学c语言、对高等编程环境不熟悉的同志们非常有帮助。 WIN-TC免费版使用turbo C2为内核,提供WINDOWS平台的开发界面,因此也就支持WINDOWS平台下的功能,例如剪切、复制、粘贴和查找替换等。而且在功能上也有它的独特特色例如语法加亮、C内嵌汇编、自定义扩展库的支持等。并提供一组相关辅助工具令你在编程过程中更加游刃有余,如虎添翼。WIN-TC简繁双语版可以正常运行于98及其以上的简体及繁体WINDOWS操作系统上。 主要功能: 1、在WINDOWS下编辑TC代码,可以充分利用WINDOWS的支持剪贴版和中文的特点;   2、Include和Lib路径自动定位,告别TC设置路径的历史;   3、编译错误捕捉功能,编译时不会出现烦人的DOS窗口;   4、支持C内嵌汇编从而实现C/ASM混合编程;   5、支持C扩展库(自定义LIB库);   6、错误警告定位功能、出现编译错误时双击输出框里的出错行信息可以自动寻找到错误的行,就像DOS的TC那样;   7、支持语法加亮功能,并可以自定义设置;   8、没有目录路径限制,你甚至可以安装到带有空格的路径文件夹里;   9、允许自定义设置输入风格,能够实现VC类似的输入风格;   10、可选择是否生成ASM、MAP或OBJ文件,你甚至可以指定只生成EXE文件;   11、稳定的文件操作功能,支持历史记录列表和使用模板;   12、撤消和重复功能,并可以按照自己内存情况设置最多撤消次数(最多允许999次);   13、具有行标计数的功能,并可以设置样式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值