第四章 字符串和格式化输入输出
1.null 字符
数组末尾位置的字符 \0
数组结尾一定是以\0结束
空字符符号是 “”
#include <stdio.h>
int main()
{
char N[]={"abcde"};
int i;
printf("%d",sizeof(N));
}
N中所占长度为6,也就是说编译器自动在最后补了一位\0
当N定义了长度,编译器则会在长度没有超过声明时写入\0
2.strlen和sizeof
区别在于strlen函数再读取到\0就停止读取
sizeof则是读取整个整个储存单元
所以一般同一句话sizeof测出来的储存量是要比strlen测出来的大
3.明示常量
在C语言头文件limits.h和float.h中提供了整数型和浮点型大小限制的详细信息
这是一部分limits.h的明示常量
明示常量 | 含义 |
---|---|
CHAR_BIT | char类型的位数 |
CHAR_MAX | char类型的最大值 |
CHAR_MIN | char类型的最小值 |
SCHAR_MAX | signed char类型的最大值 |
SCHAR_MIN | signed char类型的最小值 |
UCHAR_MAX | unsigned char类型的最大值 |
SHRT_MAX | short类型的最大值 |
SHRT_MIN | short类型的最小值 |
USHRT_MAX | unsigned short类型的最大值 |
INT_MAX | int 类型的最大值 |
INT_MIN | int 类型的最小值 |
UINT_MAX | unsigned int 的最大值 |
LONG_MAX | long类型的最大值 |
LONG_MIN | long类型的最小值 |
ULONG_MAX | unsigned long 类型的最大值 |
LLONG_MIN | long long 类型的最大值 |
LLONG_MIN | long long 类型的最小值 |
ULLONG_MAX | unsigned long long类型的最大值 |
这是一部分float.h的明示常量
将常量中的FLT替换为DBL和LDBL即可表示double和long double的明示常量
明示常量 | 含义 |
---|---|
FLT_MANT_DIG | float类型的尾数位数 |
FLT_DIG | float类型的最少有效位数(十进制) |
FLT_MIN_10_EXP | 带有全部有效数字的float的最小负指数(以10为底) |
FLT_MAX_10_EXP | 最大指数 |
FLT_MIN | 保留全部精度float类型的最小正数 |
FLT_MAX | 保留全部精度float类型的最小正数 |
FLT_EPSILON | 1.00和比1.00大的最小float类型之间的差值 |
include cstdio. h>
include< float.h>//浮点型限制
include <limits. h>//整型限制
Printf("Some number limits for this system: \n")i
at main(void)
printf(" Biggest int:용dNn", INT MAX)ァ
printf("Smallest long long: 11d\n", LLONG MIN);
printf("one byte= gd bits on this system. n", CHAR BIT);
printf(" Largest double:용en"DB工MAX)
printf("Smallest normal float: e\nm. FLT MIN)i
printf("float precision =d digits\n", FIT DIG)
printf(" float epsilon=용en",Fエ I EPSILON);
return 0
}
该程序的输出示例如下:
some number limits for this system:
B19ge8t1nt:2147483647
Smallest long long: -9223372036854775808
one byte.8 bits on this system
Largest double: 1. 797693e+308
Smallest normal float: 1. 175494e-38
float precision =6 digits
float epsilon =1.192093e-0