[问题] 用阵列方式表达指标的习惯?

楼主: sppmg (sppmg)   2017-10-17 09:35:15
开发平台(Platform): (Ex: Win10, Linux, ...)
all
问题(Question):
对于一个指标 p ,具有:
p[i] == *(p+i)
刚刚看了“混沌四神:阵列、指标、宣告、定义” #1ERylPtG (C_and_CPP)
知道阵列 != 指标,语法上的相似是编译器处理掉的。
(不过以前初学的时候看过书上提过用[]和*处理阵列资料的争执,
说有人测过指标会略快一点?)
那我想请问通常对于一个 malloc 空间的操作会习惯使用[]还是 *() 呢?
会这样问是因为感觉上 p[i] 好像比 *(p+i) 来的简洁。
不过不知道会不会容易造成误会,像是 p[-1] 这种用法。
作者: steve1012 (steve)   2017-10-17 10:25:00
感觉不是效能瓶颈 lol
作者: Feis (永远睡不着 @@)   2017-10-17 10:28:00
关键应该是 i 的值是否具备某些特性可以利用,根本问题是 p值可变有没好处
作者: diabloevagto (wi)   2017-10-17 10:42:00
程式写给人看的,只要你在使用时可以让其他人看懂你用的是指标还是阵列就好,我会习惯用 ()
作者: loveflames (咕啾咕啾魔法阵)   2017-10-17 11:13:00
不要故意写成i[p]就好
作者: diabloevagto (wi)   2017-10-17 13:15:00
我会用 *()
作者: Killercat (杀人猫™)   2017-10-17 14:01:00
除了map用不用operator[]有点差异以外 其他都是爽就好
作者: steve1012 (steve)   2017-10-17 14:27:00
没差吧 别钻牛角尖了
作者: kingofsdtw (不能閒下來!!)   2017-10-17 18:20:00
程式除了能动,可读性也要顾虑到github专案都会避免一些特殊语法,效能说真的差异不大相对于网络延迟,mem copy的时间小到可以忽略除非你是写driver我会推荐 a->b->c->d[i] 一眼就知道在干麻
作者: longlongint (华哥尔)   2017-10-17 19:24:00
选我 *(p++)

Links booklink

Contact Us: admin [ a t ] ucptt.com