我不是版主.
你这种行为是属于编译器特性的,有的支持,有的不支持.vs微软的有一套自己的标准,所以可能支持,而mingw里的G++是C99标准,这种代码最好少写,不兼容通用标准.
(当然包括其他编译器,要看它怎么支持的)
至于为什么转化过程是16进制,很简单申请的变量是整数,但给值却是字符串,编译器输入文本(就是你打代码的地方)遇到字符全部以16进制解析,包括string和char,这是在内存最简单的运作方式,直接复制存储完毕.其实在int内部就已经完全复制了16进制.而问题其实在cout这里,cout在输出的时候查询变量名字为整数,所以以整数形式输出(做了16进制转换10进制).所以就是现在这个样子.
如果你以后接触内存,系统级开发,你还可以发现以16进制存储的操作,比如
int _tmain(int argc, _TCHAR* argv[])
{
int a=0x000A;
int b=0x0001;
int c=0x00FF;
cout<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;
cin.get();
return 0;
}