黑马程序员技术交流社区

标题: objective-C 中为什么 const 变量的值可以被修? [打印本页]

作者: zhaozigeng    时间: 2014-12-28 12:55
标题: objective-C 中为什么 const 变量的值可以被修?
  1. #import <Foundation/Foundation.h>
  2. int main(int argc, const char * argv[]) {
  3. const NSString *foo = @"aaa";
  4. foo = @"bbb";
  5. if ([foo isEqualToString:@"aaaT"]) {
  6. NSLog(@"%@", foo);
  7. }
  8. NSLog(@"%@", foo);
  9. return 0;
  10. }
复制代码
为什么 const 修饰的变量竟然可以修改且不报错,
作者: 从今以后    时间: 2014-12-28 13:29
NSString * const foo = @"aaa"; 这是修饰foo的指向不可变,const NSString *foo = @"aaa"; 这是修饰@"aaa"不可变
作者: kenloo    时间: 2014-12-28 14:41
关于这点,"彻底搞定C指针"里面有很详细的解释




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2