当我尝试运行此代码时,它提供以下输出:
c
99
25448
4636795
Run Code Online (Sandbox Code Playgroud)
我想知道编译器如何生成最后两个输出?
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
char ch='c';
printf("%c\n",ch);
printf("%d\n",ch);
printf("%d\n",'ch');
printf("%d","ch");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
printf("%c",ch); - print normal character
printf("%d\n",ch); - print ascii value of character
printf("%d\n",'ch'); - multi-character literal
printf("%d","ch"); - print value of pointer to string "ch"
Run Code Online (Sandbox Code Playgroud)
关于'ch'
0x6368对于'c',25448是和63是十六进制,对于'h',68是十六进制