让我说我得到了:
char *p = NULL;
我确信这个会出现问题,因为我要取消引用NULL
指针:
*p = 16;
另一方面,我认为这个可以,因为我得到* p的地址而不是NULL
本身:
char **pp = &p;
我在两种情况下都是对的吗?
答案 0 :(得分:5)
是的,你是。尽管p的值为NULL,但它仍然具有有效地址,因此您可以传递其引用。
答案 1 :(得分:4)
是的,在这两种情况下你都是对的。
答案 2 :(得分:1)
在这两种情况下你都是对的。只是添加一个简单的说明。虽然你指定了
char **pp = &p;
你仍然无法访问** pp,因为它仍然是NULL。但你可以安全地访问* pp。