前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >谈谈C语言中那些常见的数据类型

谈谈C语言中那些常见的数据类型

作者头像
程序员小顺
发布2021-10-13 10:30:21
8010
发布2021-10-13 10:30:21
举报
文章被收录于专栏:知识小木屋

在C语言中,数据类型是指用于声明不同类型的变量或函数的一个广泛的系统。C语言中的数据类型可分为:基本类型、枚举类型、void类型、派生类型。

sizeof 运算符

在C语言中,sizeof 是一种单目运算符,它还是计算大小的数据类型,包括类、结构、共用体和其他用户自定义数据类型。它以字节的形式给出了表达式类型名的存储大小。我们可以利用 sizeof 运算符来获取 char int short long float double 等类型的大小。下面我们用实例来获取一些常见的整数类型和常见的浮点数类型的储存大小吧!

源代码如下:

代码语言:javascript
复制
#include<stdio.h>
int main()
{
  printf("char 存储大小 : %d\n",sizeof(char));
  printf("int 存储大小 : %d\n",sizeof(int));
  printf("short 存储大小 : %d\n",sizeof(short));
  printf("long 存储大小 : %d\n",sizeof(long));
  printf("float 存储大小 : %d\n",sizeof(float));
  printf("double 存储大小 : %d\n",sizeof(double));
  
  return 0;
}

输出结果如下:

代码语言:javascript
复制
char 存储大小 : 1
int 存储大小 : 4
short 存储大小 : 2
long 存储大小 : 4
float 存储大小 : 4
double 存储大小 : 8

总结一下

1.整数类型

类型

储存大小

取值范围

char

1字节

-27 到 27-1

int

4字节

-231 到 231-1

short

2字节

-215 到 215-1

long

4字节

-215 到 215-1

2.浮点类型

类型

精度

储存大小

取值范围

float

6 位小数

4字节

1.2E-38 到 3.4E+38

double

15 位小数

8字节

2.3E-308 到 1.7E+308

关于整数类型,我再补充一个如何补位0的小案例

题目:给定一个日期(2021-03-03),请输出这个日期(2021-03-03)

看似简单,于是给出以下代码:

代码语言:javascript
复制
#include<stdio.h>
int main()
{
  int yy,mm,dd;
  printf("请输入年月日:\n");
  printf("例如:2021-03-13\n");
    scanf("%d-%d-%d",&yy,&mm,&dd);
    printf("%d-%d-%d",yy,mm,dd);
  return 0;
}

编译运行 输入“2021-03-03”结果如下

代码语言:javascript
复制
2021-3-3

很奇怪,我输入的 “0” 去哪里了?

将上面的第8行代码改成如下

代码语言:javascript
复制
    printf("%d-%.2d-%.2d",yy,mm,dd);

再次编译运行输入,发现“0”回来了

为什么?

因为%d是十进制整数占位符,默认情况下不会补0位,又因为日期中的月份和天数最大是两位数,所以将 %d 改成 %.2d 就可以输出这个“0”了。%.2d是指按宽度为2输出,右对齐方式输出。若不够两位,左边补空格。

关于浮点类型,我也来补充一个四舍五入的小案例

题目:输入3.1415926,输出四舍五入后保留三位的小数。

源代码如下:

代码语言:javascript
复制
#include<stdio.h>
int main()
{
  float a = 3.141926;
    printf("%.3f",a);
  return 0;
}

运行编译输出结果:

代码语言:javascript
复制
3.142

%3f 是指输出宽度为3的浮点数,若第四位小数小于等于4则舍去,若第四位小数大于等于5则入一位。

拓展一下,如果我不需要对结果四舍五入,如何取两位小数呢?

核心思路:

将小数扩大1000倍,再将浮点类型强制转换为整数类型,在输出时,将整数类型强制转换为浮点类型,最后除以1000即可。

源代码如下:

代码语言:javascript
复制
#include<stdio.h>
int main()
{
  float a = 3.141926;
  a *= 1000;
  int b = (int)a;
  printf("%.3f",(float)b/1000);
  return 0;
}

运行编译输出结果:

代码语言:javascript
复制
3.131

void 类型

void 类型指的是没有可用的值,通常有以下三种情况:函数返回为空、函数参数为空、指针指向 void。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 知识小木屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档