%p 是用来打印指针(pointer)的格式说明符。它会以十六进制形式打印内存地址。
例如:
void *ptr = (void*)0x1234abcd;
printf("%p\n", ptr); // 输出类似:0x1234abcd
常见的格式说明符:
- %d - 十进制整数
- %x - 十六进制整数(小写)
- %X - 十六进制整数(大写)
- %p - 指针地址(通常是十六进制)
- %s - 字符串
- %c - 单个字符
- %f - 浮点数
在你提供的代码中:
printf("page table %p\n", pagetable);
这行代码会打印页表的内存地址,例如可能输出:
page table 0x80023000
这对于调试和理解内存布局非常有用,因为它让我们能看到具体的内存地址。