一些博客和网站在讨论指针是有益的原因之一是因为"指针"的程序中的"执行速度"会好于没有指针.我能解决的问题是:
取消引用单个位置需要两次(或更多次)内存访问(取决于间接数).与直接使用相比,这将增加执行时间.
将指向大型数据类型的指针传递给函数(如结构)可能是有益的,因为只有结构/联合的地址被复制并且它不会被值传递.因此在这种情况下应该更快.
例如,只需强制引入指针而不需要:
int a, b, *p, *q, c, *d;
p = &a;
q = &b;
d = &c
// get values in a, b
*d = *p + *q; // why the heck this would be faster
c = a + b; // than this code?
Run Code Online (Sandbox Code Playgroud)
我检查了汇编程序输出使用gcc -S -masm=intel file.c指针版本有很多加载内存并存储除直接方法之外的引用.
我错过了什么吗?
注意:问题与代码无关.代码只是一个例子.不考虑编译器优化.