gpt4 book ai didi

c - 这个表达代表什么?

转载 作者:行者123 更新时间:2023-11-30 21:30:22 25 4
gpt4 key购买 nike

下面的语句中的0x%08x是什么意思?

printf("\t\t\t[in func3] i @ 0x%08x = %d\n", &i, i);

这是否意味着在结果前面加上 0x 并给出 8 位十六进制值?

最佳答案

printf("\t\t\t[in func3] i @ 0x%08x = %d\n", &i, i);

这里有两个格式字符串,以及相应的参数:

%08x in 0x%08x:打印一个包含前导零的 8 个十六进制数字的 int/unsigned (在 0x 之后)。
%#08x 会更简单。

不管怎样,就是Undefined Behavior因为指针不是 int
转换为 void*char*unsigned char* 后,使用 %p 打印数据指针或签名字符*

另一个是 %d,用于以标准十进制表示法打印 int,所以我们希望 i 确实是一个。

作为引用,这里有 printf 的手册页:http://man7.org/linux/man-pages/man3/printf.3.html

关于c - 这个表达代表什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26476579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com