从零开始,掌握C语言中的数据类型

数据类型

    • [1. 前言](#1. 前言)
    • [2. 预备知识](#2. 预备知识)
      • [2.1 打印整数](#2.1 打印整数)
      • [2.2 计算机中的单位](#2.2 计算机中的单位)
    • [3. C语言有哪些数据类型呢?](#3. C语言有哪些数据类型呢?)
      • [3.1 内置类型和自定义类型](#3.1 内置类型和自定义类型)
    • [4. 每种类型的大小是多少?](#4. 每种类型的大小是多少?)
    • [5. 为什么有这么多数据类型呢?](#5. 为什么有这么多数据类型呢?)
    • [6. 这么多类型应该如何使用呢?](#6. 这么多类型应该如何使用呢?)
      • [6.1 一个小知识](#6.1 一个小知识)

1. 前言

大家好,我是努力学习游泳的鱼。仔细阅读这篇文章,你将了解各种数据类型,并学会使用它们。

2. 预备知识

2.1 打印整数

我们可以用printf配合%d 来打印一个整数。如

c 复制代码
printf("%d\n", 100);

就能在屏幕上打印出100

2.2 计算机中的单位

计算机是能够识别二进制的。就像十进制中有1~9,二进制只有01

一个二进制位的10的大小就是一个bit(比特位)。

其余单位的换算关系如下:

1byte(字节)= 8bit

1kb = 1024byte

1mb = 1024kb

1gb = 1024mb

1tb = 1024gb

1pb = 1024tb

3. C语言有哪些数据类型呢?

c 复制代码
char      字符数据类型
short     短整型
int       整型
long      长整型
long long 更长的整型
float     单精度浮点数
double    双精度浮点型

C语言中的字符是单引号括起来的一个 字符,如'w'

整型,就是整数的意思。

浮点型,就是小数的意思。

3.1 内置类型和自定义类型

以上是C语言提供的类型,也叫内置类型

我们也能自己创造类型,叫自定义类型

注意:C语言没有字符串类型!

4. 每种类型的大小是多少?

这里我们写一个程序来测量每种类型的大小。

c 复制代码
#include <stdio.h>

int main()
{
	printf("%d\n", sizeof(char));
	printf("%d\n", sizeof(short));
	printf("%d\n", sizeof(int));
	printf("%d\n", sizeof(long));
	printf("%d\n", sizeof(long long));
	printf("%d\n", sizeof(float));
	printf("%d\n", sizeof(double));

	return 0;
}

输出:
1 2 4 4 8 4 8
sizeof是一个操作符,用来计算类型大小的,单位是字节

对比代码,可知:

char大小是1个字节
short大小是2个字节
int大小是4个字节
long大小是4个字节
long long大小是8个字节
float大小是4个字节
double大小是8个字节

那为什么long大小和int相同呢?

C语言标准规定,sizeof(long) >= sizeof(int)

所以这没有问题!

5. 为什么有这么多数据类型呢?

C语言是一门计算机语言,写出来的程序要解决生活中的问题,就要有能力描述生活中的问题。比如说,写一个购物商城,商品的名字是由字符构成的,价格都是浮点数(即小数)。所以要有字符类型,浮点型等等。

C语言中,char是字符数据类型,整型(即整数)有short,int,long,long long等等,浮点型(小数)有float和double

不同类型大小也不一样,short是2个字节,int是4个字节,那么int能够存储的范围就比short大。C语言提供丰富的类型,我们就可以在不同的环境选择合适的类型

6. 这么多类型应该如何使用呢?

类型是用来创建变量的

比如:

c 复制代码
int price = 55;
float weight = 55.5f;

6.1 一个小知识

当我们直接写一个小数时,比如上面的55.5,会被认为是双精度浮点数(double)。如果我们要把它赋值给float类型,可以再后面加个f,表示这是一个单精度浮点数(float

相关推荐
sycmancia6 小时前
Qt——编辑交互功能的实现
开发语言·qt
石山代码6 小时前
C++ 内存分区 堆区
java·开发语言·c++
无风听海7 小时前
C# 隐式转换深度解析
java·开发语言·c#
一只大袋鼠7 小时前
Git 进阶(二):分支管理、暂存栈、远程仓库与多人协作
java·开发语言·git
LuminousCPP8 小时前
数据结构 - 线性表第四篇:C 语言通讯录优化升级全记录(踩坑 + 思考)
c语言·开发语言·数据结构·经验分享·笔记·学习
web3.08889998 小时前
1688 图搜接口(item_search_img / 拍立淘) 接入方法
开发语言·python
один but you9 小时前
从可变参数到 emplace:现代 C++ 性能优化的核心组合
java·开发语言
MY_TEUCK10 小时前
【Java 后端 | Nacos 注册中心】微服务治理原理、选型与注册发现实战
java·开发语言·微服务
测试员周周10 小时前
【Appium 系列】第13节-混合测试执行器 — API + UI 的协同执行
开发语言·人工智能·python·功能测试·ui·appium·pytest
光泽雨11 小时前
c#中的Type类型
开发语言·前端