c语⾔中以%f输出时⼩数点,C语⾔中的格式字符和转义字符,
所有指针变量占4个字节...
1、格式字符
格式说明由“%”和格式字符组成,如%d%f等。它的作⽤是将输出的数据转换为指定的格式输出。
格式说明总是由“%”字符开始的。
释义
格式字符
表⽰
pointer
%p
以16进制形式输出内存地址
decimalism ⼗进制
%d
按⼗进制整型数据的实际长度输出
long decimalism
%ld
长整型输出
octonary
%o
⼋进制输出
hexadecimal
%x
以⼗六进制输出整数,重要!
unsigned decimalism
%u
输出⽆符号整型,
char
%c
输出⼀个字符
string
%s
输出⼀个字符串
float
输出实数,默认保留⼩数点后6位
%mf
输出实数,保留⼩数点后m位
exponent
%e
指数形式输出
%g
根据⼤⼩⾃动选f或e格式,且不输出⽆意义的零
注意:
1)⼀定要掌握 %x(或 %X 或 %#x 或 %#X),因为调试的时候经常要将内存中的⼆进制代码全部输出,然后⽤⼗六进制显⽰出来。下⾯写⼀个程序看看它们四个有什么区别:
# include int main(void)
{
int i = 47;
printf("%x\n", i);
printf("%X\n", i);
printf("%#x\n", i);
printf("%#X\n", i);
return 0;
}
/*
在 VC++ 6.0 中的输出结果:
2f
2F
0x2f
0X2F
*/
从输出结果可以看出:如果是⼩写的x,输出的字母就是⼩写的;如果是⼤写的X,输出的字母就是⼤写的;如果加⼀个#,就以标准的⼗六进制形式输出。
最好是加⼀个#,否则如果输出的⼗六进制数正好没有字母的话会误认为是⼀个⼗进制数呢!
总之,不加#容易造成误解。但是如果输出 0x2f 或 0x2F,那么⼈家⼀看就知道是⼗六进制。⽽且%#x和%#X中,笔者觉得⼤写的⽐较好,因为⼤写是绝对标准的⼗六进制写法。
释义
16进制
⼩写
%x
输出的字母就是⼩写的
⼤写
%X
输出的字母就是⼤写的
#⼩写
%#x
printf怎么输出字符以标准的⼗六进制形式输出
#⼤写
%#X
2)使⽤%u输出⽆符号整型(unsigned),输出⽆符号整型时也可以⽤ %d,这时是将⽆符号转换成有符
号数,然后输出。但编程的时候最好不要这么写,因为这样要进⾏⼀次转换,使 CPU 多做⼀次⽆⽤功。
2、转义字符
转义字符
意义
ASCII码值(⼗进制)
\a
响铃(BEL)
007
\b
退格(BS) ,将当前位置移到前⼀列
008
\f
换页(FF),将当前位置移到下页开头
012
\n
换⾏(LF) ,将当前位置移到下⼀⾏开头
010
\r
回车(CR) ,将当前位置移到本⾏开头
013
\t
⽔平制表(HT) (跳到下⼀个TAB位置)
009
\v
垂直制表(VT)
011
\\
代表⼀个反斜线字符''\'
092
\'
代表⼀个单引号(撇号)字符
039
\"
代表⼀个双引号字符
034
\?
代表⼀个问号
063
\0
空字符(NUL)
000
\ooo
1到3位⼋进制数所代表的任意字符
三位⼋进制
\xhh
⼗六进制所代表的任意字符
⼗六进制
3、不同类型的指针,都是占4个字节
⾸先,⼀个变量的地址存放的是该变量第⼀个字节的编号,⽐如 整型变量 i 占 4 个字节,但是 i 的地址存放的是整型变量 i 的第⼀个字节的编号(也就是地址)。那么通过第⼀个字节的编号怎么到变量 i 呢,即整型变量占 4 个字节,从第⼀个字节的位置往下数 8 个字节就是整型变量 i 所在的位置了。
其次,为什么地址变量都占 4 个字节呢?因为内存有 4 G 个编号,为了⽅便存放编号太⼤的字节,所以,地址变量的空间就⽤ 4 个字节来表⽰了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论