*unsigned:保证纯二进制输出,整数没有负数部分,没有补码
char a=255;printf(a)==-1
unsigned char a=255;printf(a)==255
*整数输出 【无特殊需要就用int】
%d:char,short,int
%ld:long,long long
%u:unsigned
%lu:unsigned long(long)
*浮点类型(float与double)【无特殊需要就用double】
scanf printf
float %f %f,%e(科学计数法输出)
double %lf %f,%e
无穷大不能用整数表达,但可以用浮点:1.0/0
浮点数不准确,无法直接做比较:2.0+3.1!=5.1 fabs(2.0+3.1-5.1)<1e-05
*char
既是整数也是字符
输入输出字符:%c,可理解为:%c表示要从输入中读出字符
scanf不能处理char变量
两个字符的减得到在表中的距离,字符与数字一一对应,两者操作共通【'a'-'A'得到距离,a-('a'-'A')将a变为A】
*逃逸字符:\
\b:回退,让下一个输出回到上一个位置并覆盖掉该位置的输出,但如果下一个不是输出,例如\n,则无影响
\t:到下一个表格位
\n:换行,实际执行回车和换行两个动作
\r:回车
\":输出"
\':输出'
\\:输出\
*类型转换
运算符两边出现不一样的类型时,会自动转换为范围更大/宽的类型
char<short<int<long<long long
int<float<double
但,对于printf,小于int的类型会被转化为int,float会被转化为double
*
scanf("%d%d%d",&a,&b,&c);
表示在输入数据时,各数值之间以空格隔开,为1 2 3
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
在输入数据时,应输入a=1,b=2,c=3
printf("%10.5f",1.0/3);
在 0 的前面有三个空格【 0.33333】
如果不想输出多余的0,则可以采用g格式符。如:
printf("%g",pow(2,10));
输出结果为:1024