相关疑难解决方法(0)

508
推荐指数
8
解决办法
5万
查看次数

如果在循环内声明了一个指针变量,它是否与循环的每次传递相同的内存地址相关联?

如果你有一个变量,那么就有一个与该变量相关的内存地址,在指针变量的情况下,该内存地址的"值"是对内存地址的引用,该地址保存指针指向的实际数据. .

所以,如果我有:

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)

正如您所看到的,第一个和第三个内存地址对于循环的每次传递期间声明的指针变量保持不变,我的理解是这是因为前一个变量超出范围而下一个可用地址是相同的地址.

这种泛化可以扩展到循环内声明的所有变量,还是有异常?

c++ pointers loops

3
推荐指数
1
解决办法
1992
查看次数