1:%c,%s的区别?
%c在C语言中代表字符型格式符;结尾没有\0。
%s在C语言中代表字符串型格式符;结尾有\0。
%c和%s一般用在printf、sprintf等字符串格式化函数中,用于决定格式化参数的数据类型。如printf("%s", a)会将变量a作为字符串类型进行格式化。
2:C语言中所有格式化类型的定义
1*、%d/i (正数不输出符号)
接受整数值并将它表示为有符号的十进制整数,i是老式写法。 如:%5d,不足五位左侧补空格,右对齐。 如:%-5d,不足五位右侧补空格,左对齐。 如:%05d,不足五位,左侧补零;
2、%o
无符号8进制整数(不输出前缀0)
3、%u
无符号10进制整数
4、%x/X
无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF(不输出前缀0x)
5*、%f(lf)
单精度浮点数和双精度浮点数用f(lf在C99开始加入标准,意思和f相同) 如*:%.2f,四舍五入的保留两位有效数字
6*、%e/E
科学计数法表示的数,此处"e"的大小写代表在输出时用的“e”的大小写
7、%g/G
有效位数,如:%.8g表示单精度浮点数保留8位有效数字。
8、%c
字符型。可以把输入的数字按照ASCII码相应转换为对应的字符
9、%s/S
字符串。输出字符串中的字符直至字符串中的空字符(字符串以'\0‘结尾,这个'\0'即空字符)
10、%p
以16进制形式输出指针
11、%n
到此字符之前为止,一共输出的字符个数,不输出文本
12*、%%
不进行转换,输出字符‘%’(百分号)本身。(注意:PTA做题会遇到这个知识点)
13、%m
打印errno值对应的出错内容,(例:printf("%m\n");)
3:
英文字母:char类型就占一个字节,string类型占两个字节。
汉字:一般都为两个字节,数组类型多占一个字节。
数字:short类占1个字节,int类占2个字节,float类占4个字节,long类占8个字节,double类占16个字节。
4:
不同的字符所占的字节是不同的。
ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。如一个ASCII码就是一个字节。
UTF-8编码:一个英文字符等于一个字节,一个中文等于三个字节。
Unicode编码:一个英文等于两个字节,一个中文等于两个字节。
符号:英文标点占一个字节,中文标点占两个字节。
5:对于double型(谨记!!!)
#include <stdio.h>
int main()
{
double num;
scanf("%lf",&num);//输入一定是这个,其他的不可以
printf("%lf",num);//printf("%f",num);也可以
return 0;
}