none
在结构里面定义一个成员变量!然后我再定义两个个结构变量 这两个结构变量同时调用一个成员变量 然后赋值 为什么第二个变量不会改变第一个变量的值? RRS feed

  • 问题



  • 例题:
    struct entry
    {
         int value;
    } ;
    entry n1, n2;

    n1.value = 100;
    n2.value = 200;

    像这样 为什么打印出来的都是独立的值?
    n1打印出n1的值100
    n2打印出n2的值200

    为什么n2没有改变n1的值?他们不是同时调用value这个变量吗?

    法拉利 法拉利 法拉利
    2009年6月29日 10:46

答案

  • entry n1, n2;
    是两个不同的实例。他们都拥有自己的内存,并不会互相影响。entry n1,n2;会在栈上创建两个对象。其实这个例子并不是体现面向对象模型,而是抽象数据模型、在这个例子中n1,n2是entry的两个实例。你可以看看&n1.value和&n2.value,这两个地址是不一样的。
    麻烦把正确答案设为解答。
    2009年6月29日 13:53
    版主