分类：电脑/网络-程序设计
问题：c语言初学者printf("十进制形式a=%d,十六进制形式a= 
printf("十进制形式a=%d,十六进制形式a =%#x\n",aVar,aVar);

%#x\n  是什么意思？
回答：在中,printf函数输出格式字符串的一般形式为： [标志][输出最小宽度][.精度][长度]类型,其中方括号[]中的项为可选项。各项的意义介绍如下,供学姐参考：1、格式符类型和意义如下表所示：格式字符   格式字符意义d 　　　　 以十进制形式输出带符号整数(正数不输出符号)o 　　　　 以八进制形式输出无符号整数(不输出前缀O)x 　　　　 以十六进制形式输出无符号整数(不输出前缀OX)u 　　　　 以十进制形式输出无符号整数f 　　　　 以小数形式输出单、双精度实数e 　　　　 以指数形式输出单、双精度实数g 　　　　 以%f%e中较短的输出宽度输出单、双精度实数c 　　　　 输出单个字符s 　　　　 输出字符串2、标志:字符为-、+、#、空格四种，其意义如下： 标志  标志意义-     结果左对齐，右边填空格+     输出符号(正号或负号)空格输出值为正时冠以空格，为负时冠以负号#     对c，s，d，u类无影响；对o类， 在输出时加前缀o,对x类，在输出时加前缀0x；对e,g,f 类当结果有小数时才给出小数点3、输出最小宽度：用十进制整数来表示输出的最少位数。 若实际位数多于定义的宽度，则按实际位数输出， 若实际位数少于定义的宽度则补以空格或0。4、精度：精度格式符以“.”开头，后跟十进制整数。本项的意义是：如果输出数字，则表示小数的位数；如果输出的是字符， 则表示输出字符的个数；若实际位数大于所定义的精度数，则截去超过的部分。5、长度：长度格式符为h,l两种，h表示按短整型量输出，l表示按长整型量输出。所以纠正楼上菲菲学妹的一个疏忽，%#不是输出十六进制，x也不是变量aVar的值。%是格式输出指定前导字符，x的作用是指定以十六进制形式输出变量aVar，#的作用是同时输出十六进制的前缀0x，\n是转义字符，回车换行的意思！