Joh*_*ith 3 c++ pointers loops
如果你有一个变量,那么就有一个与该变量相关的内存地址,在指针变量的情况下,该内存地址的"值"是对内存地址的引用,该地址保存指针指向的实际数据. .
所以,如果我有:
for (int x = 0; x < 2; x++)
{
char * a = (char*)malloc(20);
printf("%p\r\n", &a);
printf("%p\r\n", a);
}
Run Code Online (Sandbox Code Playgroud)
输出应该是这样的:
00999999
04427310
00999999
0442ECF0
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,第一个和第三个内存地址对于循环的每次传递期间声明的指针变量保持不变,我的理解是这是因为前一个变量超出范围而下一个可用地址是相同的地址.
这种泛化可以扩展到循环内声明的所有变量,还是有异常?