《深入理解计算机系统》上面有说指针访问确实比下标访问要快。理论上说确实是这个样子 但是现代编译器经过,下标访问和指针访问会生成同样的汇编代码。所以其实他们应该是一样的了,而且下标访问可读性比指针访问更强,而指针访问表达力更强。各有好出。 下面贴代码:(无优化)[code] int a[100]; a[1] = 0; [/code]gcc -S 生成[code] subl $400, %esp movl $0, -396(%ebp) [/code][code] int a[100]; *(a+1) = 0; [/code]gcc -S 生成[code] subl $400, %esp leal -400(%ebp), %eax addl $4, %eax movl $0, (%eax) [/code]O3优化:[code] int a[100]; a[1] = 0; [/code]gcc -S 生成[code] 没有了,被gcc去掉无用指令了。 [/code][code] int a[100]; *(a+1) = 0; [/code]gcc -S 生成[code] 没有了,被gcc去掉无用指令了。 [/code]其实这个只是一个非常简单的分析了。我个人觉得,没有比较在这个上面选择,因为用下标访问你会发现通常来说有巨大优势。 ^^个人只见,如果我说的错了 [email]webmail.matrix@gmail.com[/email] 欢迎讨论。