美文网首页移动端面试题收集
指针常量与常量指针

指针常量与常量指针

作者: 幻影道哥 | 来源:发表于2018-10-22 16:56 被阅读13次

    指针常量 指针不可变 指针指向的值可 const右边部分不可变.
    常量指针 指针可变 指针指向的值不可变

    由于OC是指针赋值 在oc里面 说以 指针常量的常量也没法改变.

    下面是拷贝的别人的一些方法,直接粘贴到viewDidLoad里面即可运行

    // C -----------------------------------------
    int a=3,b=1;

        //常量指针
        int const *p1=&a;
        
        //指针常量
        int *const p2=&b;
        
         NSLog(@"p1=%d p2=%d a=%d b=%d",*p1,*p2,a,b);
        
        //改变指针   将p1指向a p1指针变量存的地址改变 b的地址改为a的地址
        p1=&b;
        
        NSLog(@"p1=%d p2=%d a=%d b=%d",*p1,*p2,a,b);
        
        //改变变量
        *p2=5;    // p2 指针变量存的地址不变 改变的是p2指的变量的值
        NSLog(@"p1=%d p2=%d a=%d b=%d",*p1,*p2,a,b);
    

    // OC------------------------------------------

        NSString *str = @"abc";
        NSString *str2=@"123";
       
        NSLog(@"str的地址:%p 指向变量的地址:%p 指向变量值:%@",&str,str,str);
        
        
        NSLog(@"str2的地址:%p 指向变量的地址:%p 指向变量值:%@",&str2,str2,str2);
    
        NSString const * strp=str;
        
        NSLog(@"strp=%@  str=%@  str2=%@",strp,str,str2);
        
        strp=str2;
        
        NSLog(@"strp=%@  str=%@  str2=%@",strp,str,str2);
        
        //在oc中NSObject类型指针常量赋值 无法改变常量
        NSString *const strp1=str2;
        
        NSLog(@"strp1=%@  str=%@  str2=%@",strp1,str,str2);
        
        str2=@"xyz";
        
        NSLog(@"strp1=%@  str=%@  str2=%@",strp1,str,str2);
    

    参考链接 https://www.cnblogs.com/5ishare/p/4858614.html

    相关文章

      网友评论

        本文标题:指针常量与常量指针

        本文链接:https://www.haomeiwen.com/subject/hzvgzftx.html