《小菜狗 C 语言入门 + 进阶笔记》(5)数据类型

文章目录:《小菜狗 C 语言入门 + 进阶笔记》(0)简介

暂时无法在飞书文档外展示此内容

1、C 实例 – 成绩录入

#include <stdio.h>                 //头文件
                                   //空白行
/* 我们的第二个 C 程序 */           //注释
int main()                         //main 函数
{                                  //函数体开始
    int score = 0;                 //变量
    printf("请输入成绩:");          //输出语句
    scanf("%d", &score);           //输入语句
    printf("成绩是:%d\n", score);  //输出语句
    return 0;                      //结束并返回语句
}                                  //函数体结束
1.1、C 实例 – 成绩录入中的数据类型

数据类型 + 变量/函数

int main()                         //main 函数
int score = 0;                     //变量

2、数据类型定义

在 C 语言中,数据类型指的是用于声明不同类型的变量或函数。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。

C 中的数据类型可分为以下几种:

每种数据类型都有变量和常量。

在这里插入图片描述

其中 C 语言的基本数据类型大体有三种:整型(整数)、实型(小数/浮点数)、字符型。

3、基本数据类型

下表列出了关于基本数据类型的存储大小和值范围的细节:

类型存储大小值范围
char1 字节-128 到 127 或 0 到 255
unsigned char1 字节0 到 255
int2 或 4 字节-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647(某些16位单片机是2字节)
unsigned int2 或 4 字节0 到 65,535 或 0 到 4,294,967,295(某些16位单片机是2字节)
short2 字节-32,768 到 32,767
unsigned short2 字节0 到 65,535
long4 字节-2,147,483,648 到 2,147,483,647
unsigned long4 字节0 到 4,294,967,295

注意,各种类型的存储大小与系统位数有关,但目前通用的以 64 位系统为主。

以下列出了 32 位系统与 64 位系统的存储大小的差别(windows 相同):
在这里插入图片描述

3.1、类型修饰符

因为数据是有正、负之分的,C 语⾔引⼊ signedunsigned 关键字来修饰 char 、short 、int 、long 等整型家族的类型,用于补充说明变量的特性。

  • 整型都默认为是有符号型(signed);
  • 有符号型即可以是正数、负数和 0
  • 也可以根据需要,将整型指定为无符号型(unsigned),此时整型变量只能存放非负数
3.2、整型
//短整型
short [int]
[signed] short [int]
unsigned short [int]
//整型
int
[signed] int
unsigned int
//⻓整型
long [int]
[signed] long [int]
unsigned long [int]
//更⻓的整型 -- C99中引⼊
long long [int]
[signed] long long [int]
unsigned long long [int]
3.3、浮点型
//单精度
float
//双精度
double
//长双精度
long double
3.4、字符型
char
//有符号和无符号字符
[signed] char
unsigned char
3.5、布尔型
  • 在 C99 中也引⼊了 布尔类型 ,是专⻔表⽰真假的。
  • 布尔类型变量的取值是:true 或者 false。
    在这里插入图片描述

_Bool 依然仍是整数类型,但与一般整型不同的是,_Bool 变量只能赋值为 0 或 1,非 0 的值都会被存储为 1。

C99 提供了一个头文件 <stdbool.h> 定义了 bool 代表 _Bool,true 代表 1,false 代表 0。

只要导入 stdbool.h ,就能非常方便的操作布尔类型了。

bool

4、sizeof 运算符

为了得到某个类型或某个变量在特定平台上的准确大小,您可以使用 sizeof 运算符。

  • sizeof 是个单目运算符,也是⼀个关键字,用来计算操作数在内存中占据的字节数。
  • 表达式 sizeof(type) 不仅仅可以计算内置的类型的大小,计算数组、⾃定义类型的大小都是可以的。
4.1、sizeof 的返回类型

用⼀个类型别名 size_t ,用来统一表示 sizeof 的返回值类型,可能是 unsigned int,也可能是 unsigned long。不管 sizeof 返回值的类型是什么,%zd 占位符(或 %zu )都可以正确输出。

4.2、程序实例

下面的实例演示了 sizeof 获取 各个类型字节大小

#include <stdio.h>
int main()
{
    int a = 20;
    printf("%zd\n", sizeof(char));  //1
    printf("%zd\n", sizeof(int));   //4
    printf("%zd\n", sizeof(a));     //4
    printf("%zd\n", sizeof a);      //4
    printf("%zd\n", sizeof(3.14));  //8
    printf("%zd\n", sizeof(3.14f)); //4
    return 0;
}

说明:

  • 字符类型的整型类型是 1 个字节
  • 整型类型的变量是 4 个字节,整型类型也是 4 个字节
  • sizeof 的括号中如果给的不是类型的话,括号可以省略的
  • 3.14 被编译器识别为 double 类型,所以大小是 8 个字节
  • 3.14f 因为在 3.14 的后边加了 f ,会被编译器识别为 flaot 类型,是 4 个字节

注意:

如果你想将一个浮点数定义为 float 类型,需要在数值后加上 f 或 F,否则编译器会默认将其视为 double 类型。

5、接下来

讲了这么多数据类型,那数据类型是用来做什么的呢?

数据类型是用来创建变量的(7)变量小节会讲变量。

每日一更!

公众号、CSDN等博客:小菜狗编程笔记

谢谢点赞关注哈!目前在飞书持续优化更新~

日更较慢有需要完整笔记请私我,C/C++/数据结构-算法/单片机51-STM32-GD32-ESP32/嵌入式/Linux操作系统/uboot/Linux内核-驱动-应用/硬件入门-PCB-layout/Python/后期小程序和机器学习!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

啵啵学习

你的鼓励将是我最大的动力!

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

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

打赏作者

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

抵扣说明:

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

余额充值