占位符(转换规范)
注意:占位符
%d 整型 长整型 %ld %lld 无符号占位 %u %lu %llu
%f浮点型 默认6位 如果不够的话,“%.10f”就是占10位.
%c 字符 单引号是字符,双引号是字符串,只能打印字符串
数据类型
整型:5种
char 是整型 也是字符类型 因ASCII码
short
int
long
long long
浮点型:2种
浮点类型
第一种:float
第二种:double
字符变量与字符常量
字面常量:无需声明,编译器会自行判断类型
符号常量定义格式:define 常量名 数字
无符号转换关键字:unsigned 数据类型 数字
数据定义例子:
#include<stdio.h>
// 符号常量
# define PRICE 3
# define SB 4
int main()
{
// 可以跨文件使用
// 变量初始化
// 变量初始化只能在变量第一次声明时,使用一次初始化
int a1 = 1;
a1 = 2;
printf("%d\n", a1 + PRICE);
// 变量先声明,再赋值
// 变量里的值,已经被声明,不能再初始化
float a2;
a2 = 2.0;
printf("%f\n", a2 + SB);
unsigned int t = 333;
printf("%u\n", t);
return 0;
}
查看占多少字节
查看占用多少字节的关键字:sizeof
printf(“int=%zd\n”, sizeof(int));
查看int的占用字节数,一个字节是8位,二进制最大位数是8
注意:数据占用的字节大小有可能是根据:编译器、设备硬件、等因素决定的。
例子:
#include<stdio.h>
int main()
{ //5种类型
printf("char=%zd\n", sizeof(char));
printf("short=%zd\n", sizeof(short));
printf("int=%zd\n", sizeof(int));
printf("long=%zd\n", sizeof(long));
printf("long long=%zd\n", sizeof(long long));
return 0;
}
数值极限范围计算
范围计算::一个字节是8位
设:int的占用字节数是4,
4*8=32位
[-2的31次方] ~ [2的31次方]
因为首位是正负号位,被占了,所以少了一次方。
若使用无符号关键字unsigned int
48=32位
[0]~[232次方]
首位则不会被占用。
浮点型的精度误差实验
以下是为了证明他们之间是有精度误差的。
#include<stdio.h>
int main()
{ //小数 数据类型 定义
//float类型 一般小数点后6位是准确的
float a1 = 0.11111111, b1 = 2;
printf("%.10f\n", a1 * b1);
double a2 = 0.11111111, b2 = 2;
printf("%.10f\n", a2 * b2);
return 0;
}