我知道unsigned int *和int *不兼容。但是因为i,j是int *(int指针),那么它们如何使用无符号类型进行打印。为什么它会输出0!为什么输出是这样的?
#include<stdio.h>
//#include<conio.h>
main()
{
int *i,*j,**k;
//i+2;
k=&i;
printf("\n*k=%u j=%u i=%u",*k,j,i);
//getch();
}
输出:
*k=0 j=0 i=0
它的295℃的问题,其中一个问题,我只是想了解是什么在此代码发生的事情!我没有写这个代码!
用于使用具有自动存储持续时间的对象的值,而它没有被初始化未定义行为,未定义的行为:
此外应使用%P
实施例输出打印指针值将错误的类型传递给'printf()'。 – EOF
这里真正的问题是'i'和'j'都没有被定义,因此也不是'* k'。你所做的只是打印未定义的值。至于格式,你是对的,'%u'应该传递'unsigned int'。 –
使用正确的格式说明符来打印指针..阅读此链接。可能对你有用..http://stackoverflow.com/questions/9053658/correct-format-specifier-to-print-pointer-address – sas