【发布时间】:2011-10-18 15:54:06
【问题描述】:
在一次求职面试中,有人问我“在 C++ 中,如何通过普通变量标识符或指针更快地访问变量”。我必须说我对这个问题没有一个好的技术答案,所以我做了一个疯狂的猜测。
我说过访问时间可能与普通变量/标识符相同,它是指向存储值的内存地址的指针,就像指针一样。换句话说,就速度而言,它们都具有相同的性能,而指针之所以不同,只是因为我们可以指定我们希望它们指向的内存地址。
面试官似乎对我的回答不太相信/不满意(虽然他什么也没说,只是继续问别的),所以我想来问一下我的回答是否准确,如果不是为什么(来自理论和技术 POV)。
【问题讨论】:
-
我看不出面试官的问题的重点。
-
@Mike:虽然我同意实际上知道答案并没有那么有用,但如果你有很多经验,答案是你最终会接触到的东西,以及大量琐事,比如案例您可能在正常生活中可能永远不会遇到的未定义行为等。然后,这个问题可以说是有用的,以了解 1) 申请人有很多经验 2) 申请人与“酷人”挂在一起,例如这里堆栈溢出或在 freenode 上的 #c++ 上,这种“琐事”一直出现
-
这个问题有助于了解候选人是否了解幕后情况。这不需要很多经验,只需了解底层硬件的工作原理即可。请参阅下面的评论,了解为什么我认为这很重要。安德烈亚斯:我目前非常高兴能在一些不关心未定义行为的程序员之后进行清理。这就是为什么当您进行不相关的更改时,他们留下的代码会突然崩溃,例如更改他们意外覆盖的内存中的内容。如果你认为这是琐事......
-
@dewtell:我说的是更奇特的未定义行为案例 =)
标签: c++ performance variables pointers