结构体->和.的使用区别

今天在做一个判断链表有无环的时候用到了结构体,发现了结构体对象调用属性时->和.的区别

先说说这个判断的算法,核心是快慢指针

/**
 * Definition for singly-linked list.
 * class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
public class Solution {
    public boolean hasCycle(ListNode head) {
        if (head==null)
            return false;
        ListNode slow = head;
        ListNode fast = head;
        //快慢指针的思想,无欢快指针会到达链表尾,有环的话快慢指针会相遇
        while (fast!=null &&fast.next!=null) {
            slow = slow.next;
            fast = fast.next.next;
            if (slow == fast) return true;
        }
        return false;
    }
}

再说说标题的区别

当访问地址(指针或迭代器)的成员或数据时,用“->”
当访问直接对象的成员或数据时,用“.”

“.”只需要声明一个结构体,格式是结构体类型名+结构体名。然后用结构体名”.”域名就可以引用域了 。

“->”需要声明一个结构体,格式是结构体类型名+结构体名,并且声明一个指针指向该结构体。
struct date {
int month;
int day;
int year;
} myday;
struct date p = &myday;
/* (*p).month = 11; */ p->month = 11;//这两个表达式意思相同

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值