初识C语言数据类型

目录

前言

一、数据类型的分类

二、基本数据类型

1、整型(int、short、long、long long)

1.1  int 类型

1.2  short 类型

1.3  long类型

1.4 long long类型

  

2、浮点型(float、double)

2.2  单精度浮点型(float)      

2.3双精度浮点型(double)

3、字符型(char)

总结



前言

学习任何一门编程语言,首先我们就应该从最基础的数据类型去学习。因为我们在写程序是总离不开去定义各种的变量,比如我们需要去开发一个学籍管理系统,我们需要记录学生的姓名、学号、成绩、身份证号等等。那么这时候就需要数据类型啦!因为如果你没有正确的去定义他们的数据类型,就会造成资源浪费或者内存溢出。那么下面就来说说C语言中有哪些数据类型,这些数据类型他们的大小、数值范围是多少呢,我们该怎么去具体选择呢,一起来康康叭!


一、数据类型的分类

C语言的数据类型大致可以分类四大类:

 上面就是我们C语言里面所有的数据类型,这篇文章主要来介绍一下基本的数据类型。

二、基本数据类型

这里我们对常用的基本数据类型做一个详细的了解探讨,在C语言中,基本数据类型包括整型、布尔型、字符型和浮点型。

  • 整型:只能表示整数,对应于一部分有理数中的整数;
  • 浮点型:能表示小数,对应于一部分的分数;
  • 布尔型:特殊类型,该类型的数据只有两个:true或者false,也可以是1或0;
  • 字符型:属于整型的一种,表示一个字符;

1、整型(int、short、long、long long)

1.1  int 类型

        数据类型大小是 4 字节,能表示的数值范围是
       -2^(32-1) – 2^(32-1)-1 (即 -2147483648 ~ 2147483647)
       打印类型是 %d ,使用格式为 int 名 = 值;

1.2  short 类型

       数据类型大小是 2 字节,能表示的数值范围是
       -2^(16-1) – 2(16-1) -1 (即 -32768 ~ 32767)
       打印类型是 %hd ,使用格式为 short 名 = 值;

1.3  long类型

      数据类型大小是 4 字节,能表示的数值范围是
      -2^(32-1) – 2^(32-1)-1 (即 -2147483648 ~ 2147483647)
      打印类型是 %ld ,使用格式为 int 名 = 值;

1.4 long long类型

      数据类型大小是 8 字节,能表示的数值范围是
      -2^(63) ~ 2^(63)-1 (这个数足够大了)
      打印类型是 %lld ,使用格式为 long long 名 = 值;

数据类型大小范围打印格式
int4 Byte-2147483648 ~ 2147483647%d
short2 Byte-32768 ~ 32767%hd
long4 Byte-2147483648 ~ 2147483647%ld
long long8 Byte-2^(63) ~ 2^(63)-1%lld
#include<stdio.h>
int main(void) {
    short a = 11;//短整型数据占2个字节  
    int b = 97;//整型数据占4个字节 
    long c = 99;//长整型数据占4个字节 
    long long d =67;//长整型数据占8个字节 
    printf("短整型数据 a 占 %d 个字节\n",sizeof(a));
    printf("整型数据 b 占  %d 个字节\n",sizeof(b));
    printf("长整型数据 c 占 %d 个字节\n",sizeof(c));
    printf("长整型数据 d 占 %d 个字节\n",sizeof(d));
    return 0;
}

  

 运行结果:

2、浮点型(float、double)

   1、关于浮点数在机器中存放形式的简单说明,浮点数 = 符号位+指数位+尾数位。浮点数是近似值。
   2、尾数部分可能丢失,造成精度损失。

2.2  单精度浮点型(float)
      

  单精度浮点型占内存大小为 4 字节
  float m1 = 3.14;
  unsigned float m1 = 3.1415926; 无符号的 float 数据
  格式匹配符是:%f , 默认保留 6 位小数。

2.3双精度浮点型(double)


双精度浮点型占内存大小为 8 字节
double m2 = 3.14;
unsigned double m2 = 3.1415; 无符号的 double 数据

printf(“n = %05.4f\n”, n);
输出的含义为:显示5位数(包含小数点), 不足5位用0填充。并且保留4位小数。对第5位做四舍五入。

数据类型大小范围精度
float4 Byte−3.4∗1038+3.4∗1038十进制下,小数点后6~7位有效
double8 Byte−1.7∗10+308∼+1.7∗10+308十进制下,小数点后15~16位有效

#include <stdio.h>
int main(void)
{
	float m = 3.1415;
	double n = 5.675674;
	printf("m = %08.2f\n", m);
	printf("n = %08.3lf\n", n);
	return 0;
}

3、字符型(char)

字符型其实可以看作是整型的一种,它的标识符为“char”,其中每个字符变量都会占用 1 个字,它也分为有符号和无符号两种,读者完全可以把它当成一个整型变量。当字符型存储变量时,实际不是真正的把字符存入到存储单元中,而是将字符的ASCII 编码放到变量的存储单元中。所以char类型的本质就是一个1字节大小的整型。

char 的格式匹配符(打印格式) 为:%c

数值表示范围是:
有符号: -2^(8-1) – 2(8-1) -1 (即 -128 ~ 127)
无符号: 0 ~ 2^8 -1 (即 0~255)

#include <stdio.h>
int main(void)
{
	char ch = 'A';  // 65
	printf("1 ch = %d\n", ch);
	ch = 'm'; //
	printf("2 ch = %d\n", ch);
	ch = 'a';	// 97
	printf("3 ch = %d\n", ch);
	printf("占内存大小%d\n", sizeof(ch));
	return 0;
}


总结

当我们在定义变量时,选择正确合适的数据类型,既可以提高空间利用率,同时也可以避免溢出等问题的出现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨水小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值