指針常量 指針不可變 指針指向的值可 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);