A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© HML 中级黑马   /  2014-7-28 11:12  /  1431 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. #import <Foundation/Foundation.h>

  2. @interface Person : NSObject
  3. {
  4.     @public
  5.     int age;
  6.     double weight;
  7. }
  8. -(void)walk

  9. @end

  10. @implementation Person

  11. -(viod)walk
  12. {
  13.     NSLog(@"%d岁,体重%f的人走了一段路",age ,weight);
  14. }
  15. @end

  16. int main()
  17. {
  18.     Person *p = [Person new];
  19.     p->age = 22
  20.     p->weight = 55.5
  21.    
  22.     Person *p2 = p;
  23.     p2->age = 33;
  24.    
  25.     [p walk];
  26.    
  27.     return 0;
  28. }
复制代码
上述代码中p和p2都是指针
为什么Person *p2 = p;的书写方式不是Person **p2 = p;  难道不是指向指针的指针吗?求解!!!

3 个回复

倒序浏览
应该不是指向指针的指针吧

他是把p存的地址直接赋给了p2

也就是p和p2是一样的,都直接指向Person

而不是p2指向p,再由p指向Person
回复 使用道具 举报
Jr_711 发表于 2014-7-28 13:49
应该不是指向指针的指针吧

他是把p存的地址直接赋给了p2

哦,知道了。赋值的对象没加 “&”。懂了
回复 使用道具 举报
指向指针的指针要给的时被指的地址,所以不行额。Person *p2 = p;只是把p2这个指针指向了p这个指针指向的对象哦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马