TC官方合作论坛

 找回密码
 立即注册
查看: 2107|回复: 8

[功能建议] TC为什么要引入指针的概念?

[复制链接]
发表于 2015-12-28 10:03:58 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 seemk 于 2015-12-28 10:06 编辑

TC本来就是非强制类型的语言,如果引入了指针的概念,感觉怪怪的.比如"获取变量指针"这个函数,实在没想出来有什么用,我猜测有两种可能:

1.通过指针,调用系统api时传递地址
这个是不对的,应该用"获取变量地址"这个函数传递地址
2.通过指针,用来改变其它变量的值
比如调用函数时,使用指针传参,改变函数外部变量的值.虽然这样可以,但是据我所知TC的api都使用&引用来改变外部的变量吧?而且帮助文档里也写了这个方法:
1.jpg
而且引用传参比指针传参更直观易用,所以调用函数时,使用引用传参就够了.

但是TC里引用的概念只能能用在函数参数变量里,不能用在普通变量里,比如这样写是不行的(虽然我认为这样写是最科学的):

变量 临时=123
变量 &临时引用=临时
临时引用=456  //通过引用改变了其它变量的值

莫非TC里指针的概念就是用来解决这个情况的?如果是这样,我建议TC应该支持使用上面的写法来解决(尽管它现在不支持),而不要使用指针的概念,容易使新手迷茫


回复

使用道具 举报

发表于 2015-12-28 12:51:51 | 显示全部楼层
你懂的,tc就是这么任性,其实对于没编程基础,或者就是玩一点易语言的都搞不清指针是怎么回事,直接来变量地址更直接易懂
回复 支持 反对

使用道具 举报

发表于 2015-12-28 18:00:28 | 显示全部楼层
那是为了 支持 win32 api准备的
回复 支持 反对

使用道具 举报

发表于 2015-12-28 19:53:46 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-29 09:30:12 | 显示全部楼层
本帖最后由 seemk 于 2015-12-29 09:37 编辑

感谢关注!

下载了您的代码,我尝试使用引用来代替指针,结果以失败告终.总结如下:

TC是无法通过API给回调函数传递引用的,所以只能用"获取变量指针"这种传参方式来改变外部变量了(使用全局变量的方法除外)
"获取变量地址"也不能实现这样的需求,因为TC只有"地址取值"而没有"地址引用"(有就好了),所以无法改变外部变量的值

鄙人认为,有一种API函数似乎是TC调用不了的,比如这个API的某个参数是整形数组,也就是int *类型,而这个API的功能是改变这个数组的值.而"获取变量地址"是无法获取数组的地址的,所以这种情况是不是无法使用TC调用呢?
回复 支持 反对

使用道具 举报

发表于 2015-12-29 19:10:07 | 显示全部楼层
seemk 发表于 2015-12-29 09:30
感谢关注!

下载了您的代码,我尝试使用引用来代替指针,结果以失败告终.总结如下:

1. 变量指针与变量地址是不同的东西
  变量指针:取的是该变量的内存地址
  变量地址:取的是该变量中保存的数据地址

2. int * 类型,如果你确定是数组,那可以用结构体作为代替使用,效果相同
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-30 09:09:06 | 显示全部楼层
sam7894604 发表于 2015-12-29 19:10
1. 变量指针与变量地址是不同的东西
  变量指针:取的是该变量的内存地址
  变量地址:取的是该变量 ...

1.原来TC里的变量的概念是这样的,一直以为TC里的变量地址就像C语言那种变量地址呢

谢谢
回复 支持 反对

使用道具 举报

发表于 2016-1-1 09:43:27 | 显示全部楼层
seemk 发表于 2015-12-29 09:30
感谢关注!

下载了您的代码,我尝试使用引用来代替指针,结果以失败告终.总结如下:

内存数据无类型。不管是数组还是结构体,都是一块连续的内存。
直接申请一块内存把指针传进API里面,然后把这块内存里的数据再还源为组数或结构体就行了。没有调用不了的
回复 支持 反对

使用道具 举报

发表于 2016-2-2 21:01:37 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-16 15:56 , Processed in 0.043730 second(s), 25 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表