第1个回答 2015-07-13
C语言%e的意思是:以指数形式输出实数。
指针的值是语言实现(编译程序)相关的,但几乎所有实现中,指针的值都是一个表示地址空间中某个存储器单元的整数。
printf函数族中对于%p一般以十六进制整数方式输出指针的值,附加前缀0x。
示例:
int i = 1;
printf("%p",&i);
相当于
int i = 1;
printf("0x%x",&i);
对于32位的指针,输出一般会是类似0xf0001234之类的结果。
%e存在的理由除了附加前缀输出的便利性以外,指针的大小是不确定的,由实现决定。
根据地址空间的大小,一般有16位、32位、64位的指针。
尽管目前32位平台上的指针一般全是32位的,但旧的一些平台上可能有多种长度的指针(例如非标准的near、far、huge修饰的pointer)混用,无法用%x、%lx、%hx、%llx(对应int、long、short、long long)中的任意一种保证能输出所有类型的指针。
其余由“%”和格式字符组成的意义是:
%d整型输出,%ld长整型输出,
%o以八进制数形式输出整数,
%x以十六进制数形式输出整数,
%u以十进制数输出unsigned型数据(无符号数)。
%c用来输出一个字符,
%s用来输出一个字符串,
%f用来输出实数,以小数形式输出,
%e以指数形式输出实数,
%g根据大小自动选f格式或e格式,且不输出无意义的零。
第2个回答 2009-03-21
浮点型,科学计数法显示
#include<stdio.h>
void main()
{
int a=-1,b=98;
double x=152.6752445;
printf("a=%d,%ld,%u,%o,%x\n",a,a,a,a,a);
printf("b=%d,%5d,%-5d,%c,%5c,%-5c\\\n",b,b,b,b,b,b);
printf("x=%f,%e\n",x,x);
printf("x=%.2f,%15.2f,%-15.2f,%15.9f,%2f\n",x,x,x,x,x);
}
%e那里输出为1.526752e+002