%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 这对于调试和理解内存布局非常有用,因为它让我们能看到具体的内存地址。