33,311
社区成员
发帖
与我相关
我的任务
分享
// cpptest.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
for (int i = 0; i < 9; ++i)
{
int c = i;
std::cout << &c << std::endl;
}
return 0;
}
microsoft visual studio ultimate 2013
运行结果
C:\windows\system32\cmd.exe窗口里
001DFD0C
001DFD0C
001DFD0C
001DFD0C
001DFD0C
001DFD0C
001DFD0C
001DFD0C
001DFD0C
请按任意键继续. . .
#include <iostream>
int main()
{
int c = 10;
for (int i = 0; i < 10; i++) {
std::cout << &c << std::endl;
int c = i;
std::cout << &c << std::endl;
}
return 0;
}
照你说的后面的都只是声明,那么显然,除了第一次进入循环的时候c的地址不同,其余次数的地址都应该是相同的!
int i;
for(i=0;i<10;i++)
{
int c=i;
cout<<&c<<endl;
}
可以看到,每次 c 的地址都是一样的。
不过,不推荐这么写代码。因为这样写的话, c 的作用域范围是很有限的,在 for 循环外面 c 就被析构了。