zoukankan      html  css  js  c++  java
  • 指向对象的指针相互赋值的内存是如何表现的

    //
    //  main.m
    //  7.27、练习 指向对象的指针相互赋值的内存是如何表现的
    
    #import <Foundation/Foundation.h>
    
    @interface Person : NSObject
    {
        @public
        int _height;
        int _age;
    }
    - (void)show;
    @end
    
    @implementation Person
    
    - (void)show{
        NSLog(@"身高是%i,年龄是%i",_height,_age);
    }
    
    @end
    
    void test1(int mHeight,int mAge){
        mHeight=180;
        mAge=25;
    }
    
    void test2(Person *p){
        p->_height=180;
        p->_age=25;
    }
    
    void test3(Person *p){
        Person *newp=[Person new];
        newp=p; // 把P赋给newp就是改变newP的指向,使newp也指向
        
        newp->_height=190;
        newp->_age=40;
    }
    
    void test4(Person *p){
        Person *newp=[Person new];
        p=newp; //这样就会使p指向newp所指向的对象
        
        p->_height=200;
        p->_age=50;
    }
    
    int main(int argc, const char * argv[]) {
        
    //    创建Person对象
        Person *p=[Person new];
    //    初始化对象
        p->_height=175;
        p->_age=30;
        
        test1(p->_height, p->_age); // 这样调用函数并不会改变对象成员变量的值
        test2(p); //会改变值
        test3(p); //会改变值
        test4(p); // 不会改变值
        
        [p show];
        
        return 0;
    }
  • 相关阅读:
    mysqldump全量和增量备份脚本
    mysqldump根据通配符批量导出
    xtrabackup2.4_MySQL5.7备份与恢复
    ArrayInt
    Oracle wallet配置登陆凭证
    percona xtrabackup8.0.4备份恢复mysql8.0.12
    mysql修改密码
    range
    一周感悟
    Target
  • 原文地址:https://www.cnblogs.com/imChay/p/5590203.html
Copyright © 2011-2022 走看看