黑马程序员技术交流社区
标题:
C 与 OC指针常量和常量指针区别
[打印本页]
作者:
世年单
时间:
2016-1-13 00:46
标题:
C 与 OC指针常量和常量指针区别
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 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);
}
return 0;
}
作者:
黑人奥巴马
时间:
2016-1-13 01:11
签到咯
作者:
364827317
时间:
2016-1-13 03:21
mark以下
作者:
钟国昌
时间:
2016-1-13 09:48
不错!谢谢分享
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2