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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Guardian_Angel 中级黑马   /  2014-5-25 00:22  /  1406 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Guardian_Angel 于 2014-5-25 15:31 编辑

请问"."和“->”是不是可以互相替换使用,是不是意思都是一样的?
还有如果 有区别可以具体说一下吗?

评分

参与人数 1技术分 +1 收起 理由
wanzhu159 + 1

查看全部评分

7 个回复

倒序浏览
在OC中.是点方法中使用的,访问的是方法。而->是在对象指针在调用对象成员变量时用到的,例如p->age是直接访问p指针所指向的对象的age成员变量。这两个用法没有什么直接关系。我这两天也一直在看基础视频,讲的很清楚。
回复 使用道具 举报
.  是点语法,本质是方法调用而不是给成员变量赋值,它可以替代【】 。当系统遇到点语法的时候会自动转换成中括号【】里面的行为。比如说:
     i.age = 10;      可以自动转换成setter
    int a = i.age ;   系统自动转换成 getter

-> 是给成员变量赋值 ,比如说第一节课的  s->wheel = 2;
         在比如说 self -> wheel = 4 ;     等等

                        
回复 使用道具 举报
->是结构指针的一种用法,比如有个结构指针struct student *stu;  stu->结构的成员."."前面是变量或对象或类名(或其他名称)而"->"前面是地址、指针。.语法可以写成oc里面的[]形式,也就是方法的调用,既然是方法调用,那就可以在方法调用的时候封装东西例如监听一些其他属性的变化,干一些想干的事情。
回复 使用道具 举报
yangying514 发表于 2014-5-25 00:53
在OC中.是点方法中使用的,访问的是方法。而->是在对象指针在调用对象成员变量时用到的,例如p->age是直接 ...

哦哦哦~理解了  谢谢指点!
回复 使用道具 举报
wanzhu159 发表于 2014-5-25 09:27
->是结构指针的一种用法,比如有个结构指针struct student *stu;  stu->结构的成员."."前面是变量或对象或类 ...

额 ,懂了  原来以前一直搞混了!
回复 使用道具 举报
:(

C中

区别是前者一个是变量访问类或结构成员 后者访问一个是指针访问
回复 使用道具 举报
这样说吧
你定义一个结构体
struct Node{
int x;
int y;
};
Node p1;
p1.x ; p1.y;
Node *p2;
p2->x; p2->y;
就用这个代码来解释吧  
当这个变量是指针变量的时候 如p2  获取p2的成员变量 或者成员函数 就需要用->
如果是 普通的变量的话 就用  “.”
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马