指针如何提高程序效率?

时间:2013-02-05 07:45:00

标签: c pointers

在C中我注意到指针导致程序执行速度加快。怎么可能,因为它必须在转到实际变量之前获取指针变量?

4 个答案:

答案 0 :(得分:3)

指针不会导致程序执行速度加快。智能算法可以加快程序执行速度。通过以正确的方式使用指针,有时可以使算法更智能。指针永远不是一个魔术棒,可以解决问题,使解决方案更快。

指针只是一种设计范例,使用函数式编程,根本不使用任何指针。

答案 1 :(得分:1)

事实并非如此。程序执行速度加快的原因并不是指针的可用性。这是你用指针做什么的问题。 (可能)更快的程序执行产生于C没有引入隐藏功能的事实。

以字符串为例。其他语言中的常见实现引入了长度字段以及字符串,以便跟踪字符串的长度。这种“簿记”(虽然对程序员隐藏)会导致执行额外的周期。

另一个例子是C不检查您解除引用的指针是否有效。此评估还会花费额外的周期。

答案 2 :(得分:0)

C标准没有指定任何所需的速度,因此将速度归因于C的特征是没有意义的。考虑到某些C实现产生比其他C更优化的机器代码,并且属性速度可能更有意义到C 1 的具体实现方面。不要混淆实现和规范。

1:为了对C的具体实现速度进行有意义的比较,你可能想提一下你的OS(主要和次要版本),你的编译器(主要和次要版本),你的CPU(模型),主板,内存(模型和配置)以及您使用的命令行参数。

答案 3 :(得分:0)

虽然我知道这个问题的每个答案都来自于我在C中比我更有知识的人(我实际上不在我的联盟中),IMVHO和/或知识有限,指针改进效率

回答OP的问题(忽略其余的程序执行和提取):

  

指针如何提高程序效率?

避免重复数据。虽然这种效率在处理用户定义的变量时可能只是值得注意的,“结构”。

这是我在C指针上发现的一个很好的读物:Why C has Pointers