object-C 之 指向指针的指针

1. 要改变c的值


#import <Foundation/Foundation.h>

void changec(char  *a){

    //*a是一个指针变量,那么传进来的需要是一个地址,以为指针变量只能存储地址

    //*a 是找出a对应的存储内容,里面存放18对应的地址

    *a=18;

    

}

int main(int argc,const char * argv[])

{


    @autoreleasepool {

        

        // insert code here...

       char c;

        c=10;

        //c把地址传给函数

        //那么a变量的存储内容就是c的地址,*a指向的是c的地址

        //*a指的是a所对应的内容-c的地址名

        //*a 是找出a对应的存储内容,里面存放18对应的地址

        //此时c的地址名就是18的地址名

       changec(&c);

       NSLog(@"%i",c);

    }

   return 0;

}

2. 改变指针变量对应的值

2.1 值不变的情况

#import <Foundation/Foundation.h>

    //*a是一个指针变量,那么传进来的需要是一个地址,以为指针变量只能存储地址

void changestring(NSString *b){

//*b 是一个指针变量,那么传进来的需要是一个地址,以为指针变量只能存储地址

//b 的内容存储的是456对应的地址

    b=@"456";

}


int main(int argc,const char * argv[])

{


    @autoreleasepool {

// 指针只能存储的是地址

        //某地址对应的内容是123

        //这就是指针str的存储内容是123对应的地址               

       NSString *str=@"123";

        //将str传进去,此时d指针的内容也是123对应的地址

        //d的存储内容改为了456对应的地址,此时跟str没关系     

       changestring(str);

 //输出的str的值是不变的,还是123

       NSLog(@"%@",str);

        

        

    }

   return 0;

}

2.2 以上程序可以分析出,

如果想要改变str存储的内容,就是要把d存储123的地址给str,

那么只能先找到str的地址,那就是&str

之后&str付给指针*(*d),那么*d的存储内容就是str的地

现在*d 的内容指向456的地址

那就是str的内容为456的地址


#import <Foundation/Foundation.h>


void changestring(NSString **d){

    *d=@"456";

}


int main(int argc,const char * argv[])

{


    @autoreleasepool {

        

        // insert code here...

        NSLog(@"Hello, World!");

        

       NSString *str=@"123";

        // 指针只能存储的是地址

        //某地址对应的内容是123

        //这就是把123对应的地址付给了指针str的存储内容

        

       changestring(str);

       NSLog(@"%@",&str);

        

        

    }

   return 0;

}











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值