gpt4 book ai didi

c - c1 如何在 va_arg 中获取这个值?

转载 作者:行者123 更新时间:2023-11-30 18:44:52 27 4
gpt4 key购买 nike

我不明白 c1 如何打印 65, 66, 67, 68。我知道 char c 如何打印 A B C D,但是 c1 怎么有奇怪的输出?

    #include<stdio.h>
#include<stdarg.h>
void display(int num, ...);

int main()
{
display(4, 'A', 'B', 'C', 'D');
return 0;
}
void display(int num, ...)
{
char c, c1; int j;
va_list ptr, ptr1;
va_start(ptr, num);
va_start(ptr1, num);
for(j=1; j<=num; j++)
{
c = va_arg(ptr, int);
printf("%c", c);
c1 = va_arg(ptr1, int);
printf("%d\n", c1);
}
}

最佳答案

这并不是一个奇怪的输出。您已在 printf("%d\n", c1); 中提到格式说明符为“%d”。 “%d”是整数格式说明符。因此,变量 c1 被隐式类型转换为整数,即字符的 ASCII 值。因此,在您的情况下,它将“A”打印为 65,“B”打印为 66 等。

请参阅 fprintf() 中的转换说明符主题

关于c - c1 如何在 va_arg 中获取这个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56537509/

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