zoukankan      html  css  js  c++  java
  • 指向指针的指针

    源代码:

    - (void)test {
    
        NSString *name = @"111";
        NSLog(@">>>>>>>>>name:%@", name);
        
        [self changeValue1:name];
        NSLog(@">>>>>>>>>name:%@", name);
        
        [self changeValue2:&name];
        NSLog(@">>>>>>>>>name:%@", name);
        
        NSInteger age = 10;
        NSLog(@">>>>>>>>>age:%ld", age);
        
        [self changeAge1:age];
        NSLog(@">>>>>>>>>age:%ld", age);
        
        [self changeAge2:&age];
        NSLog(@">>>>>>>>>age:%ld", age);
        
        NSInteger *p_age = &age;
        [self changeAge3:&p_age];
        NSLog(@">>>>>>>>>age:%ld", age);
    }
    
    - (void)changeValue1:(NSString *)name {
        name = @"222";
    }
    
    - (void)changeValue2:(NSString **)name {
        *name = @"333";
    }
    
    - (void)changeAge1:(NSInteger)age {
        age = 20;
    }
    
    - (void)changeAge2:(NSInteger *)age {
        *age = 30;
    }
    
    - (void)changeAge3:(NSInteger **)age {
        **age = 40;
    }

    打印结果为:

    2021-08-06 23:46:07.004362+0800 OCTestLine[15374:474778] >>>>>>>>>name:111
    2021-08-06 23:46:07.004422+0800 OCTestLine[15374:474778] >>>>>>>>>name:111
    2021-08-06 23:46:07.004487+0800 OCTestLine[15374:474778] >>>>>>>>>name:333
    2021-08-06 23:46:07.004533+0800 OCTestLine[15374:474778] >>>>>>>>>age:10
    2021-08-06 23:46:07.004569+0800 OCTestLine[15374:474778] >>>>>>>>>age:10
    2021-08-06 23:46:07.004602+0800 OCTestLine[15374:474778] >>>>>>>>>age:30
    2021-08-06 23:46:07.004633+0800 OCTestLine[15374:474778] >>>>>>>>>age:40
    Program ended with exit code: 0

    总结起来就是:

    - (void)test {
        
        int a = 10;
        [self changeValue1:a];
        NSLog(@">>>>>>>>>>%d", a);
        
        [self changeValue2:&a];
        NSLog(@">>>>>>>>>>%d", a);
        
        int b = 100;
        [self exchangeValue1:a :b];
        NSLog(@">>>>>>>>>>%d,%d", a, b);
        
        [self exchangeValue2:&a :&b];
        NSLog(@">>>>>>>>>>%d,%d", a, b);
        
        [self exchangeValue3:&a :&b];
        NSLog(@">>>>>>>>>>%d,%d", a, b);
    }
    
    // int num;
    // num = a;
    // num = 20;
    - (void)changeValue1:(int)num {
        num = 20;
    }
    
    // int *num;
    // num = &a;
    // *num = 30;
    - (void)changeValue2:(int *)num {
        *num = 30;
    }
    
    // int num1 = a;
    // int num2 = b;
    // int num;
    // num = num1;
    // num1 = num2;
    // num2 = num;
    - (void)exchangeValue1:(int)num1 :(int)num2 {
        int num;
        num = num1;
        num1 = num2;
        num2 = num;
    }
    
    // int *num1 = &a;
    // int *num2 = &b;
    // int *num;
    // num = num1;
    // num1 = num2;
    // num2 = num;
    - (void)exchangeValue2:(int *)num1 :(int *)num2 {
        int *num;
        num = num1;
        num1 = num2;
        num2 = num;
    }
    
    // int *num1 = &a;
    // int *num2 = &b;
    // int num;
    // num = *num1;
    // *num1 = *num2;
    // *num2 = *num;
    - (void)exchangeValue3:(int *)num1 :(int *)num2 {
        int num;
        num = *num1;
        *num1 = *num2;
        *num2 = num;
    }

    打印结果为:

    2021-08-06 23:42:26.266532+0800 OCTestLine[15333:472808] >>>>>>>>>>10
    2021-08-06 23:42:26.266593+0800 OCTestLine[15333:472808] >>>>>>>>>>30
    2021-08-06 23:42:26.266669+0800 OCTestLine[15333:472808] >>>>>>>>>>30,100
    2021-08-06 23:42:26.266703+0800 OCTestLine[15333:472808] >>>>>>>>>>30,100
    2021-08-06 23:42:26.266735+0800 OCTestLine[15333:472808] >>>>>>>>>>100,30
    Program ended with exit code: 0
  • 相关阅读:
    JavaScript-创建日志调试对象(面向对象实例)
    公有属性 公有方法(原型方法) 私有属性 私有方法 特权方法 静态属性 静态方法 对象字面量创建
    JS库创建
    无post按钮提交表单
    当浏览器窗口大小改变时,设置显示内容的高度
    单元测试(qunit)
    HTML定位(滚动条、元素,视口)定位
    document.compatMode(判断当前浏览器采用的渲染方式)
    jquery自定义方法
    jQuery选择器总结
  • 原文地址:https://www.cnblogs.com/cchHers/p/15103546.html
Copyright © 2011-2022 走看看