1、strlen();const;字符串;用c预处理指令#define和ANSIC的const修饰符创建符号常量;
2、c语言没有专门储存字符串的变量类型,字符串被储存在char类型的数组中;\0标记字符串的结束;
char name[40];//40表示元素数量,char表示访问类型;只能存39字符,最后一个存结束符;
字符串有结束符,而字符没有;
sizeof计算结束符\0;而strlen不会;
c99和c11为sizeof提供了%zd的转换说明,对于strlen同样适用,他们通常的返回类型为unsigned 或者unsigned long;
3、#define PRAISE "asdasdasd";
用define定义的字符串常量可以访问PRAISE查看,例如:printf("%S",PRAISE);
常量和c预处理器:
#define a 1 //程序中所有的a都被替换成1;末尾不加分号;用大写来命名常量;
还可以用于定义字符(单引号)和字符常量(双引号),
#define BEEP '\a'
#define OPOP " asdsda "
const(限定符) 表示只读:const int a = 2;
4、头文件limits.h和float.h提供与整数类型和浮点类型大小限制相关的信息:
limits.h包含: #define INT_MAX +32767 #define INT_MIN -32768
float.h 包含:#define FLT_DTG ;//该类型的最小有效数字数(十进制);
5、printf()
转换说明 输出
%a 浮点数、十六进制和p计数法(p以前的数用十六进制来求
=(5+11/16+6/256)*2^12(p以后的数是几就是二的几次方比如:2的12次方))
%A 浮点数、十六进制和p计数法
%c 单个字符
%d 有符号十进制整数
%e 指数(e)计数法,浮点数
%E 浮点数、e计数法
%f 浮点数、十进制计数法
%g 根据值不同,自动选择%f、%e、%e格式用于指数小于-4或者大于或等于精度时
%G 根据值不同,自动选择%f、%E、%E格式用于指数小于-4或者大于或等于精度时
%i 有符号十进制整数
%o 无符号八进制整数
%p 指针
%s 字符串
%u 无符号十进制整数
%x %#x(按格式输出)无符号十六进制整数0f
%X 无符号十六进制整数0F
%% 打印一个%
printf()的转换说明修饰符
修饰符 含义
标记 + - 空格 # 0 5种标记,%-10d
数字 最小字段宽度使用更宽的字段%4d
. 数字 精度 %5.2f 字段宽度为5,小数点后有两位数字
h shor int | unsigned int ”%hu“,"%6.4hd"
hh signed char | unsigned char "%hhu"
j intmax_t | uintmax_t "%jd" "%8jx"
l long int | unsigned long int "%ld"
ll long long int | unsigned long long int "%lld"
L long double "%Lf"
t ptrdiff_t(两个指针差值类型) "%td"
z size_t (sizeof的返回值类型) "%zd"
printf() 中的float会被自动转换为double类型;
printf()的标记
标记 含义
- 从左侧打印该项"%-20s"
+ 有符号值若为正则显示加号,负显示减号”%+6.2f“
空格 有符号值正则不显示,负则显示负号 ” 6.2f“
# 格式化输出,%o则0开始 %x则0x开始 ”%#o“
0 数值格式:用0代替空格填充字段宽度,整数格式:有- 或指定 精度,则忽略该标记,”%010d" ,,"%0.83f"