- 常见数据类型
- 输出与输入的符号
数据类型 | scanf() | printf() |
---|---|---|
char | %d | %d |
int | %d | %d |
short | %hd / %d | %hd / %d |
long | %ld | %ld |
long long | %lld | %lld |
float | %f | %f |
double | %lf | %lf |
unsigned int | %u | %u |
usigened long | %lu | %lu |
size_t | —— | %zd |
- 区分%hd,%d,%ld有什么区别
1.%hd代表short的十进制输入与输出,如果对一个int类型使用%hd会造成只读取到16位的情况。
int a = 65537;
printf("d = %d\n",a);
printf("hd = %hd",a);
/* d = 65537
hd = 1 */
为什么会得到这样的结果我们把他们转化成二进制数得到
1***0000000000000001***
很明显发现%hd只取到了后16位,所以输出了1;
2.int与long均占4个字节,所以%d与%ld的读取情况一样。
- %u 属于无符号类型
因此使用%u会将补码的符号位改变,当打印数据较大时与%d打印的结果产生较大出入
需要重点区分使用%d,%u,%lu,%ld等
- 浮点类型
-数据类型 | -有效数字位数 |
---|---|
float | 7 |
double | 13 |
1.有效的浮点类型常量
3.14256
.2
4e16
.8e-5
2.编译器会自动将float类型的数据转化为double类型参与运算虽然这样使运算结果精度更高,但是会减慢程序的运行时间
因此我们可以在数据后加上f,使数据保持为float类型
类型参与运算虽然这样使运算结果精度更高,但是会减慢程序的运行时间
因此我们可以在数据后加上f,使数据保持为float类型
float a = 11.11f;
- 另外C99还增加了复数和虚数类型
#include <complex.h>