zoukankan      html  css  js  c++  java
  • Java 中的引用和指针

    在一些编程场景中,我们常常需要记录下某一个特殊的实例位置(如BST转双向链表题中需要记录最终生成的链表的头节点)。

    在使用Java编程过程中,需要注意引用的问题。

    class ListNode {
    	public int val;
    	public ListNode next;
    
    	public ListNode(int _val) {
    		val = _val;
    	}
    }
    
    public class PointerTestInJava {
    	public static void main(String[] args) {
    		ListNode node1 = new ListNode(1);
    		ListNode node2 = null;
    		
    		pointerTest(node1, node2);
    		if (node2 == null) {
    			System.out.println("node2 is still null!");
    		} else {
    			System.out.println(node2.val);
    		}
    	}
    
    	public static void pointerTest(ListNode node1, ListNode node2) {
    		node2 = node1;
    	}
    }
    

    打印结果如下:

    node2 is still null!

    显然pointerTest方法并不能将node1指向node2,作如下的改变:

    public class PointerTestInJava {
    	public static void main(String[] args) {
    		ListNode node1 = new ListNode(1);
    		ListNode node2 = new ListNode(2);
    
    		pointerTest(node1, node2);
    		if (node2.next == null) {
    			System.out.println("node2.left is null!");
    		} else {
    			System.out.println("node2.next is " + node2.next.val);
    		}
    	}
    
    	public static void pointerTest(ListNode node1, ListNode node2) {
    		node2.next = node1;
    	}
    }
    

    打印结果:

    node2.next is 1

    此时,node1.left指向了node2. 原因是可把node1.left看做是一个指针。

  • 相关阅读:
    C语言知识点
    VS Studio 相关知识点
    类——继承、复合、委托
    类(传入的形参为指针形式)-字符串的实现
    类(传入的形参为非指针形式)-复数的实现
    C++需要掌握的重点内容
    目标跟踪相关资料
    夏天在威海,冬天在昆明
    短时目标跟踪
    php实现中文反转字符串的方法
  • 原文地址:https://www.cnblogs.com/harrygogo/p/4605818.html
Copyright © 2011-2022 走看看