我应该在C和C++中带来临时变量声明吗?

bod*_*ydo 6 c loops temporary

这就是我的意思,假设我有以下代码:

for (int i = 0; i < 1000; i++) {
    char* ptr = something;
    /*
    ... use ptr here
    */
}
Run Code Online (Sandbox Code Playgroud)

似乎char* ptr每次都在循环中分配,使其无效?

写这个更有效吗?

char* ptr = something;
for (int i = 0; i < 1000; i++) {
    /*
    ... use ptr here
    */
}
Run Code Online (Sandbox Code Playgroud)

请评论这个有趣的问题.谢谢!

谢谢,Boda Cydo.

Joh*_*fle 13

它可以产生性能差异,但是如果合适的话,许多优化编译器会为您进行这种优化.这称为" 循环不变代码运动 ".