C语言中的数据类型

1.数据类型简介

在C语言中,有许许多多的数据类型,如整型,浮点型,他们分别表示整数和小数。其实所谓类型,就是指一类数据的相似特征,那么下面我们就来详细聊聊数据类型。

2.数据类型分类

2.1 整形

短整形

signed short[int]

unsigned short [int]

整形

[signed]int

unsigned int

长整形

long

unsigned long

更长的整形

long long[int]

unsigned long long

2.2 字符型

char

signed char //有符号的

unsigned char //无符号的

2.3 浮点型

float //单精度浮点数

double //双精度浮点数

long double

2.4 布尔类型

在以前,C语言并没有为布尔值单独设一个类型,而是用0表示假,非0表示真,但在C99中,专门引入了布尔类型,用来表示真假

_Bool

布尔类型的使用需要包含头文件<stdbool.h>.

布尔类型变量的取值:true或者false

2.5 补充:signed和unsigned

C 语⾔使⽤ signed unsigned 关键字修饰 字符型和整型 类型的。
signed 关键字,表⽰⼀个类型带有正负号,包含负值;
unsigned 关键字,表⽰该类型不带有正负号,只能表⽰零和正整数。
对于 int 类型,默认是带有正负号的,也就是说 int 等同于 signed int
由于这是默认情况,关键字 signed ⼀般都省略不写,但是写了也不算错。
1 signed int a;
2 // 等同于 int a;
int 类型也可以不带正负号,只表⽰⾮负整数。这时就必须使⽤关键字 unsigned 声明变量。
1 unsigned int a;
整数变量声明为 unsigned 的好处是,同样⻓度的内存能够表⽰的最⼤整数值,增⼤了⼀倍。

3.数据类型的大小

3.1 sizeof介绍

sizeof是关键字,也是一个操作符,但请注意她并不是一个库函数,其中,我们可以从字义上去理解他的作用,sizeof翻译一下就是什么的大小,他的作用就是计算操作数的大小,单位是字节

sizeof 的操作数如果不是类型,是表达式的时候,可以省略掉后边的括号。
sizeof 后边的表达式是不真实参与运算的,根据表达式的类型来得出⼤⼩。
sizeof 的计算结果是 size_t 类型的。
sizeof 运算符的返回值,C 语⾔只规定是⽆符号整数,并没有规定具体的类型,⽽是留给
系统⾃⼰去决定, sizeof 到底返回什么类型。不同的系统中,返回值的类型有可能是
unsigned int ,也有可能是 unsigned long ,甚⾄是 unsigned long long
对应的 printf() 占位符分别是 %u %lu %llu 。这样不利于程序的可移植性。
C 语⾔提供了⼀个解决⽅法,创造了⼀个类型别名 size_t ,⽤来统⼀表⽰ sizeof 的返
回值类型。对应当前系统的 sizeof 的返回值类型,可能是 unsigned int ,也可能是
unsigned long long

3.2

#include<stdio.h>

int main()
{
  size_t len1=sizeof(int);
  size_t len2=sizeof(short);
  size_t len3=sizeof(long);
  size_t len4=sizeof(long long);
  size_t len5=sizeof(char);
  size_t len6=sizeof(float);
  size_t len7=sizeof(double);
  printf("len1=%zd,len2=%zd,len3=%zd,len4=%zd,len5=%zd,len6=%zd,len7=%zd",len1,len2,len3,len4,len5,len6,len7)
  return 0;
}
 

请注意,在不同环境下,计算结果可能不同

以下是VS2022X64的环境

len1=4,len2=2,len3=4,len4=8,len5=1,len6=4,len7=8

  • 22
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值