考虑以下代码(代码中有两个问题):
import java.util.*;
public class Tree<T> {
private T info;
private List<Tree<? extends T>> children = new ArrayList<Tree<? extends T>>();
public Tree<? extends T> getChildren(int n) {
return children.get(n);
}
public void addChildren(Tree<? extends T> children) {
this.children.add(children);
}
public static void main(String[] args) {
Tree<?> b2; // so b2 is a reference of a Tree of unknown type
b2 = new Tree<Number>(); /* to allow b2 to call addChildren() with Tree<? extends Number> aguments */
b2.addChildren(new Tree<Number>()); // 1) …Run Code Online (Sandbox Code Playgroud) 假设我们在C中具有以下声明:
double d[25], * p;
int * t;
char * c;
Run Code Online (Sandbox Code Playgroud)
我们如何解释以下printf()结果?
printf("d : %x\t",d);
printf("p : %x\t",p);
printf("t : %x\t",t);
printf("c : %x\t",c);
Run Code Online (Sandbox Code Playgroud)
哪个打印ligne:
d : 62fd30 p : 1 t : 0 c : 39
Run Code Online (Sandbox Code Playgroud)
我们可以很清楚地看到d的内存地址,但p,t和c看起来都不像地址。我曾经认为,未初始化的指针在声明后采用Null值。我错了吗?我们如何解释这些结果?