C语言学习系列(一)数据类型

本文介绍了C语言的基本数据类型,包括int、char、float、double、_Bool等,详细阐述了每种类型的使用场景、表示范围及打印方式,并提到了复数和虚数类型以及字符串的存储方式。

关键字介绍

基本数据类型由11个关键字组成:int、short、long、unsigned、char、float、dobule、_Bool、_Complex(复数)、_Imaginary(虚数)
C 语言内置运算符 sizeof(),以字节为单位给出指定类型的大小。编译器可用%u 或%lu 打印。
注:在运算对象是类型时,圆括号必不可少,但是对于特定量,可有可无,如:sizeof(char), sizeof name或 sizeof(name).

int 类型

如何显示不同进制数字:

  • 以十进制显示数字,使用%d;
  • 以八进制显示数字,使用%o;
  • 以十六进制显示数字,使用%x;
  • 显示各进制数的前缀0,0x和0X 必须分别使用%#o、%#x、%#X

unsigned int 或 unsigned 只用于非负值的场合,这种类型与有符号类型表示的范围不同,可以表示更大的数。

整数溢出

unsigned int 无符号整数当达到它能表示的最大值时,会重新从起始点0开始。
int 有符号整数类型则从最小值(-2147483648)开始。

打印相关类型

  • 打印 unsigned int类型的值使用%u;
  • 打印 long类型的值使用%ld;
  • %lx 表示以十六进制格式打印 long 类型整数;
  • %lo 表示以八进制格式打印 long 类型整数;
  • %hd 表示以十进制显示 short 类型的整数;
  • %ho 表示以八进制显示 short 类型的整数;
  • %lu 表示打印 unsigned long 类型的值;
  • %lld 和%llu 分别表示有符号和无符号的 long long 类型。

char 类型

char类型实际上存储的是整数而不是字符,通过特定整数表示特定的字符,标准的 ASCII 码 的范围是0~127,只需7位二进制数即可表示。char类型长度为1字节即8个 bit 位。单引号表示单个字符。双引号表示字符串。打印字符用%c;

float、double 和 long double浮点数类型

  1. 浮点数在代码中的表示法:

    有符号的数字(包括小数点),后面紧跟 e 或 E,最后一个是有符号数表示10的指数。如:-1.56E+12=-1.56x1012 2.87e-3=2.87x10-3

float 类型的值至少有6位有效数字
double 类型的值至少有13位有效数字
long double 类型至少与 double类型的精度相同。

  • 注意:
    编译器假定浮点数常量是 double 类型的精度。虽然计算精度更高,但会减慢程序的运行速度。

  • 在浮点数后面加上 f或 F后缀可覆盖默认设置,编译器将浮点型常量看作 float 类型。如2.3f 和9.33E9F

  • 使用 l或 L 后缀使得数字成为 long double 类型,如43.2l和4.32L.

  • 打印方式

  • 用%e 打印指数计数法的浮点数

  • 打印 long double 类型要使用%Lf、%Le 或%La(十六进制) 转换说明。

  • 浮点值的上溢和下溢
    上溢:当计算导致数字多大,超过当前类型能表达的范围时,就会发生上溢。printf()显示该值为 inf 或 infinity(表示具有无穷的含义)。
    下溢:把损失了类型全精度的浮点值称为低于正常的浮点值.

复数和虚数类型

C语言有3种复数类型:float _Complex、double _Complex 和 long double _Complex.
C 语言的3种虚数类型是 float _Imaginary、double _Imaginary 和 long double _Imaginary.使用时引入 complex.h 头文件。

_Bool 布尔类型

布尔类型是无符号int 类型,所占用的空间只要能存储0或1即可。

字符串的存储方式

C语言中没有专门用于存储字符串的变量类型,字符串都被储存在 char 类型的数组中。数组由连续的存储单元组成,字符串中字符被出处在相邻的存储单元中,每个单元储存一个字符,末尾位置的字符为\0空字符。字符串以\0空字符结束。
strlen()函数计算字符串中的字符长度。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值