第2个回答 2020-01-30
比如
你定义一个int
i=3;你用
printf("%x",i);
来输出的话
输出结果是3
而%x代表输出的是十六进制的数字(%d十进制%o八进制),十六进制的3标准表示方式是0x3%#x里面的#就是起到这个作用
提醒编译器把省略掉的
"0x"这一部分加上所以
printf("%#x",i);
来输出的话
输出结果是
0x3
%p表示输出的是指针地址比如
int
*a;
printf(“%p”,a);
这里你想输出的是a所指向的内存地址,用%d
%ld都不合适,%p就是这个作用