C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 本地变量保存相同的内存地址大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
以下程序打印两个不同变量的地址.

#include <iostream>
using namespace std;

void f1()
{
    int i,k;
    cout<<"f1 : "<<&i<<endl;
}

void f2()
{
    int j;
    cout<<"f2 : "<<&j<<endl;
}

int main() {
    f1();
    f2();
    return 0;
}

Live demo

当我在GCC上运行这个程序时,我想知道,两个变量都有相同的地址.

为什么两个变量都保持地址相同?

编辑:

void f1()
{
    int i = 10;
    cout<<"f1 : "<<&i<<endl;
    cout<<"value of  : "<<i<<endl;
}

void f2()
{
    int j;
    cout<<"f2 : "<<&j<<endl;
    cout<<"value of j : "<<j<<endl;
}

int main() {
    f1();
    f2();
    return 0;
}

Live Demo 2

在这个例子中,如果我将值10分配给i,那么j也会打印10.我认为它无效,因为j未初始化.

解决方法

在此示例中,您没有使用c的任何内存分配概念.因此,您刚刚存储在i中的值将保留为从未从为i分配的内存中删除,然后当您调用fun2时,将为j分配相同的内存.这就是为什么你为这两个变量和同一个地址得到相同的值.

大佬总结

以上是大佬教程为你收集整理的c – 本地变量保存相同的内存地址全部内容,希望文章能够帮你解决c – 本地变量保存相同的内存地址所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。