我是C语言的新手。让我们开始使用下面的测试代码。
struct node {
int data;
struct node *next;
};
int main() {
struct node *n;
struct node *n2;
struct node *n3;
struct node *n4;
struct node *n5;
printf("%p\n", n);
printf("%p\n", n2);
printf("%p\n", n3);
printf("%p\n", n4);
printf("%p\n", n5);
return 0;
}
输出显示如下,
0x7fff57c42888
0x0
0x0
0x0
0x0
我无法理解变量n的指针地址不是null。并且,具有相同*节点类型的其他变量是0X0。 谁能解释一下它的原因? THX。
答案 0 :(得分:2)
您只需打印出非初始化指针(n
,..,n5
)的值。因此无法保证输出。
就像你打印int
变量而不初始化它一样:
int i;
printf( "%d", i ); // what would you expect? - no guarantee, maybe 0, maybe 7