我正在编写一个代码来读取链表中节点的地址,因此有人可以确认printf 中%p
的%u
格式是否正确。一个给我十六进制,另一个给我十进制,转换为十六进制或十进制是匹配的。如果有人可以简要介绍 和 的区别,那就太好%p
了%u
。
struct node {
int x;
struct node *next;
};
int main () {
struct node *root;
struct node *track;
root = malloc(sizeof(struct node));
printf ("Location of root is %p\n", root);
printf ("Location of root is %u\n", root);
}
执行输出:
[root@vm c_prog]# ./a.out 根的位置是 0xdc3010 根的位置是 14430224 [root@vm c_prog]# ./a.out 根的位置是 0x11fbf010 根的位置是 301723664 [root@vm c_prog]# ./a.out 根的位置是 0x7e8e010 根的位置是 132702224 [root@vm c_prog]#