在C中打印指针的值

Pra*_*n E -1 c

int main()
{
int *i,*j;

printf("%u",i);
}
Run Code Online (Sandbox Code Playgroud)

上述程序将导致输出为0

int main()
{

int *i,*j;

j=i;
printf("%u",i);
}
Run Code Online (Sandbox Code Playgroud)

上述程序将导致非零.为什么?

oua*_*uah 5

两个指针都没有初始化,因此它们的初始值是不确定的.访问未初始化的指针是未定义的行为.

此外,使用p转换说明符来打印指针值(并且还需要强制转换),因为u需要unsigned int参数:

printf("%p\n", (void *) i);
Run Code Online (Sandbox Code Playgroud)