C-数据
变量命名
由字母、数字和下划线组成,数字不能出现在第一个位置上,关键字不可以作为变量名。
基本数据类型
简介
在C语言中有4中基本数据类型,整型、浮点型、指针和聚合类型(数组和结构体等),
所有其他的数据类型都是由这四种组合派生而来。
1.整数
char、short、int、long、long long
注意:它们都可分为有符号(signed)和无符号(unsigned)两种
字符常量的类型总是int, 不能在它们后面加unsigned或long后缀
整形值之间的规则:长整形至少应该和整形一样长,整形至少应该和短整形一样长
2.浮点数
float、double、long double
3.逻辑
bool
4.指针
5.自定义类型
注意:蓝色部分为C99的类型
类型不同的表现
类型名称:int、long、double
输⼊输出时的格式化:%d、%ld、%lf
所表达的数的范围:char < short < int < float < double
内存中所占据的⼤⼩:1个字节到16个字节
内存中的表达形式:⼆进制数(补码)、编码(float, double)
char:1字节(8 bit) (-2^7~2^7-1)
short:2字节 (-2^15~2^15-1)
int:取决于计算机和编译器(CPU),通常的意义是“1个字”
long:取决于计算机和编译器(CPU),通常的意义是“1个字”
long long:8字节 (-2^63~2^63-1)
变量定义
C语言的变量必须在使用前定义,并且要声明变量类型。
格式
<变量类型><变量名称>
int num = 1; float amount = 50.5;
常量定义
格式
const <变量类型><变量名称>
const int num = 30;
unsigned
1)应用:在整数类型前加上unsigned使得它们成为无符号的整数
2)计算机内部的二进制表达没有变,变的是我们如何看待它们
3)unsigned的初衷:为了做纯二进制的计算,主要是为了位移,并非扩展整数表达的正整数范围
4)如果⼀个字⾯量常数想要表达⾃⼰是unsigned,可以在后⾯加u或U,比如32U,
同理用l或L表示long(long)
输入与输出
%d:char byte short int
%ld:long long
%u:unsigned
%u:long unsigned
%o:8进制
%0x:16进制
%f(%e):float or double 输出
%f: float输入
%lf:double输入
说明:8进制和16进制只是把数字表达为字符串,与计算机内部如何表达无关;
16进制很适合表达2进制数,因为4个二进制数正好是一个16进制位
#include <stdio.h> int main(void) { double num1, num2; printf("Please enter two nums: "); scanf("%lf %lf", &num1, &num2); double sum = num1 + num2; printf("%f + %f = %f ", num1, num2, sum); }
浮点数
类型 | 字长 | 范围 | 有效数字 |
float | 32 |
±(1.20*10e-38~3.40*10e38),
±inf,nan
|
7 |
double | 64 |
±(2.2*10e-308~1.79*10e308),
0,±inf,nan
|
15 |
科学计数法
参考资料:《C和指针》