int在C语言中表现得像一个十六进制[关闭]。

问题描述 投票:-4回答:2

我有以下的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当作一个十六进制的值来处理。

c int
2个回答
1
投票

对于地址,你需要使用p字符标号。如果你想知道var的地址,使用p,它是打印指针的转换指定符,见下面:例如,如果你想知道var的地址,使用p,它是打印指针的转换指定符。

int var = 9;
printf("%p\n", (void *) &var);

0
投票

字符串中的"%x "使其打印为十六进制值。我需要使用"%d"

© www.soinside.com 2019 - 2024. All rights reserved.