C语言各种%m(m代表d,f,c,s等字母)所表示的意义

内容:

一、各种%m(m代表d,f,c,s等字母)所表示的意义

二、%d %o %x %#x %X %#X %u %e %g 等的比较

三、%i 与%d 的区别

四、输入正负数时%u所打印的值

一、各种%m(m代表d,f,c,s等字母)所表示的意义

整型:

%d 整型输出
%i 与%d在printf函数中无区别,在scanf中有区别(下面详细解释)
%ld 长整型输出
%o 以八进制数形式输出
%x 以十六进制数形式输出(其中十六进制中字母为小写,如:4d2)
%#x 以0x…的十六进制数形式输出(如:0x4d2)
%X 以十六进制数形式输出(其中十六进制中字母为大写,如:4D2)
%#X 以0X…的十六进制数形式输出(如:0X4D2)
%u 以十进制数形式输出无符号数字(unsigned,即正数)
%e 以指数形式输出(如:3e4,注:所要输出的数据需是浮点数)
%E 以指数形式输出(如:3E4,注:所要输出的数据需是浮点数)

浮点型:

%f 以单精度浮点数(即小数)形式输出
%lf 以双精度浮点数形式输出
%g 以浮点数形式输出(不显示无意义的0,如:正常输出1.000000,实际输出1)

字符:

%c 以字符形式输出

字符串:

%s 以字符串形式输出

地址:

%p 以地址形式输出

二、%d %o %x %#x %X %#X %u %e %g等的比较

屏幕截图(320).png

三、%d 与%i 的区别

1.在printf函数中没有区别
2.在scanf函数中存在区别
(1)%d 只能与十进制数匹配
(2)%i 可以与八进制、十进制、十六进制数匹配。
(3)对于%i,若输入数据的前面加上0(如:012),则按八进制数处理。
若数据的前面加上0x或0X(如:0x12或0X12),则按十六进制数处理。

四、输入正负数时%u所打印的值

如果它对应的值是正数,则返回时是其本身;
如果它对应的值是负数,则返回时是一个2的32次方减去这个负数的绝对值。例如:-2,返回的是:4294967294。如:
屏幕截图(321).png

猜你喜欢

转载自blog.csdn.net/weixin_74837727/article/details/128452947