gpt4 book ai didi

c 格式字符串 : printf argument containing format specifiers

转载 作者:太空宇宙 更新时间:2023-11-04 02:31:25 25 4
gpt4 key购买 nike

#include <stdio.h>

int main(void) {
int b= 37;
char a=10, str[32] = "deva%x %x", buf[32];
snprintf(buf, sizeof(buf), str);
printf("%s", buf);
printf("\n %p", &b);
return 0;
}

输出:deva80482b9 400209300xbfb80aac

想知道 printf 在这里是如何工作的以及它打印的值是多少。有什么意义吗??

最佳答案

这是未定义的行为,因为传递给 snprintf() 的参数与格式字符串不匹配。

没有对一般发生的事情进行进一步分析是非常有趣的,因为发生的事情是未定义并且可能会从程序的一个编译更改为另一个。

最可能的解释是 printf() 就像参数在那里一样继续,从 foo-knows-where 读取数据。

关于c 格式字符串 : printf argument containing format specifiers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42784116/

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