为什么ch显示值26723

为什么ch显示值26723,c,C,} 在输出中,为什么ch=26723。它来自哪里?如果我更改为dh,则值将更改为26724您的代码不是打印变量ch,而是打印一个多字符文字“ch”,其值恰好为26723dh’的值恰好为27624 如果要打印变量char ch,必须首先将其初始化为一个值,然后使用正确的printf说明符打印: char ch = 'A'; printf( "%c" , ch ); 当以十六进制打印时,该值更容易理解。使用我的工具: 我可以看到26723是由字符c和h组成的,并允许字节排序 26724也有类似的评

}


在输出中,为什么ch=26723。它来自哪里?如果我更改为dh,则值将更改为26724

您的代码不是打印变量ch,而是打印一个多字符文字“ch”,其值恰好为26723dh’的值恰好为27624

如果要打印变量char ch,必须首先将其初始化为一个值,然后使用正确的printf说明符打印:

char ch = 'A';
printf( "%c" , ch );

当以十六进制打印时,该值更容易理解。使用我的工具:

我可以看到26723是由字符c和h组成的,并允许字节排序


26724也有类似的评论。

Ch是一个变量。”X'是字符,str表示字符串。在您的代码中,“ch”并不意味着ch变量。问题是什么?是否尝试显示ch变量内容?您是否想知道为什么传递多个字符而不是单个字符有效?你想知道为什么你得到的是0x6863而不是0x6368 endianess问题吗?但问题是如果'c'=99d为什么'ch'=26723d@这不是匿名值,因为总是“ch”=26723d@MdShibbirHossen多字符文字是一种编译器扩展。编译器将其定义为,当作为int计算时的特定值。对不起,我不理解第二条注释。哦,是的。我认为它就像一个ascii值,有没有这个多字符文字的图表。ascii图表,即c=99。还有,如何找到多字符文字的值?可能没有桌子:那会很长。在任何情况下,编译器都会生成多字符文字的值。
char ch = 'A';
printf( "%c" , ch );
$ hex 26723 26724
26723: 26723 064143 0x6863 text "hc" utf8 \346\241\243
26724: 26724 064144 0x6864 text "hd" utf8 \346\241\244