1.数据类型及其范围
int 10位 -2147483648~2147483647 %d 4个字节
long和int都是4字节,范围也是一样,但scanf时候,long是%ld
long long是8字节,输入%lld,范围很大,大概是 -9*10^18~9*10^18
float是%f,4字节,范围 -10^38~10^38,是4字节;double,8字节,范围最大,-10^308~10^308,%lf
char a[],scanf("%s",a); 它对a没有&符号,%s;char a,字节最小,1字节;%c;
2.memset
它头文件string.h,一般是对一维字符型数组改变值的,但也可以对一维整形数组初始化,只能变为0
用法:memset(a,0,strlen(a)*sizeof(char));
3.gets
它用时,要注意前面没有输入数据,如果有要用getchar吸收掉回车,要不然gets会失效。
gets(a); //a是一个字符型数组,它遇到空格当成字符处理,回车中断;输出时候,空格照样输出
4.c的格式化输入、输出
printf的标准格式是:printf("格式说明字符",输出列表项);
其中格式说明字符形式为:% 格式字符串
格式字符串的一般形式:%[-][0][m][.n] 格式字符
% 表示格式说明的起始符号
- 表示输出项左对齐输出,省略则表示右对齐
0 表示空位填充0,省略则表示不填充
m 表示域宽,即对应的输出项在输出设备上所占的字符数
.n 输出浮点数时n指精度(小数位数),省略n则输出6位小数;输出字符串时,表示输出左起n个字符
因此printf("%3d",c)表示域宽为3,即输出3位;printf("%d",c)根据c的值确定位宽。
5.scanf对于特殊输入
①:输入123***456时,只要123和456
scanf(“%d***%d”,&a,&b);即可,在输入时加一些不必要的元素,构成新的输入格式。
②:scanf(“%3d”,&a);指的是输入数据超过3位时,a取前三位,不超过照常进行。