指针常量与常量指针

指针常量 指针不可变 指针指向的值可 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

你可能感兴趣的:(指针常量与常量指针)