c语言关于字符变量输出的问题

来源:百度知道 编辑:UC知道 时间:2024/05/13 15:21:47
老师出的题目:
输入并运行下面程序分析结果
#include<stdioh.h>
main()
{ char c1,c2;
c1=46,c2=47;
printf("%3c %3c",c1,c2);
printf("%3d %3d",c1,c2);
}
把程序第二行改为:int c1,c2;再运行 分析结果

我调试出来的结果是:
。 /
46 47
且改成int后结果不变。

我主要是想问下 %3c 和 %3d 里头的3是什么意思 加了后有什么影响?我怎么觉得加不加一样啊

字符变量,也就是char类型的变量,有两种输出模式:
1 按照字符输入。即输出本身的字符,如果是'A',那么就输出A。
有两种方法:
1) 用printf输出。
%c格式符是用作char变量输出的,如
char c = 'M';
printf("%c", c);
这样就输出M了。
2)用putchar输出。
putchar 功能为输出一个字符,所以
char c = 'M';
putchar(c);
同样是输出M。

2 输出char变量的ASCII码值。
char变量存储的本质为ASCII码,所以可以通过printf,用%d或%x输出其值。
char c = 'M';
printf("%d, 0x%x\n", c, c);
会分别以10进制和16进制输出M的ASCII码值,即
77,0x4d

%3d中的3表式:输出占3列,如果少于3列则左补空格;如果多于3列则全部输出
例如:
int i=15;
printf("%3d",i);
输出结果是: _ 15 (其中"_ "表式一个空格,空格+15刚好占3列)
再如
int i=1542;
printf("%3d",i);
输出结果是: 1542 占四列(大于3列,所以全部输出).

占3个(至少)字符位置,如果不足就用空格填充,过多的话就全部输出。