我有以下的C代码
#include <stdio.h>
int main() {
int var = 9; /* actual variable declaration */
printf("Address of var variable: %x\n", var);
return 0;
}
如果var是1-9,它打印1-9.没有问题如果var是10-15,它打印1-f.Doh。
这似乎是把一个int当作一个十六进制的值来处理。
对于地址,你需要使用p字符标号。如果你想知道var的地址,使用p,它是打印指针的转换指定符,见下面:例如,如果你想知道var的地址,使用p,它是打印指针的转换指定符。
int var = 9;
printf("%p\n", (void *) &var);
字符串中的"%x "使其打印为十六进制值。我需要使用"%d"