C 语言的基本数据类型

2024-09-09 05:32
文章标签 语言 数据类型 基本

本文主要是介绍C 语言的基本数据类型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

C 语言的基本数据类型

注:本文面向 C 语言初学者,如果你是熟手,那就不用看了。

有人问我,char、short、int、long、float、double 等这些关键字到底是什么意思,如果说他们是数据类型的话,那么为啥有这么多数据类型呢?

如果写了一句:

int a;

那么执行的时候在内存中会有什么变化呢?

橡皮泥大家都玩过吧,一般你买橡皮泥的时候,店家会赠送一些模板。

在这里插入图片描述

上图就是我在某宝的截图,看见右下角的模具了吧,不同的模子,印出来的图案不一样,可以是城堡、金字塔、海星……

C 语言中的数据类型就和这些模子一样,不同的模子对应的内存大小不一样。

就拿 32 位系统来说, char 类型就是 1 字节;int 类型就是 4 字节; double 类型就是 8 字节。各种类型都有一个对应的字节数,具体是多少你可以用 sizeof 关键字测一下,因为不同的平台可能不一样。

有人问,啥是内存啊?

炒菜你会吗?炒菜总要有个锅吧,就是铁板烧也要有个铁板吧,如果说锅是厨师加工菜品的地方,那么内存就是 CPU 加工数据的地方。虽然 CPU 里面有寄存器,但是寄存器特别少,所以很多数据要放到内存里,用的时候再调到寄存器。

简单来说,内存就是一个临时存储器,运行程序时,各种变量都会被放在内存中,然后 CPU 来操纵它们,比如读、写、修改。

内存一般按照字节来组织,字节是最基本的存储单元。一个字节是 8 个 bit,可存储的数据范围是 0-255;

如果你在代码中写了:

int a;...char b;

假设是 32 位的平台,那么内存视图类似下图:

在这里插入图片描述

右边一个小格子代表一个字节,变量 a 占了 4 个字节,用绿色表示;变量 b 占用了1 个字节,用蓝色表示。左边的连续 8 个小格子代表 1 个字节可存储 8 个 bit。

对一个变量赋值,就是修改它占用的内存。

当你在程序中写 int a = 100;

在执行这句话的时候,计算机干了两件事。一是在内存的空闲区域找连续的 4 个字节,从此,这 4 个字节就和变量 a 联系起来了,可以说,a 就代表了这块内存区域;二是把这个区域的值修改为 100。

以后你对 a 的任何操作,都是对这片内存的操作。这 4 个字节就是 a 的一亩三分地。

【End】

这篇关于C 语言的基本数据类型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1150294

相关文章

Python ORM神器之SQLAlchemy基本使用完全指南

《PythonORM神器之SQLAlchemy基本使用完全指南》SQLAlchemy是Python主流ORM框架,通过对象化方式简化数据库操作,支持多数据库,提供引擎、会话、模型等核心组件,实现事务... 目录一、什么是SQLAlchemy?二、安装SQLAlchemy三、核心概念1. Engine(引擎)

GO语言短变量声明的实现示例

《GO语言短变量声明的实现示例》在Go语言中,短变量声明是一种简洁的变量声明方式,使用:=运算符,可以自动推断变量类型,下面就来具体介绍一下如何使用,感兴趣的可以了解一下... 目录基本语法功能特点与var的区别适用场景注意事项基本语法variableName := value功能特点1、自动类型推

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

MySQL数据类型与表操作全指南( 从基础到高级实践)

《MySQL数据类型与表操作全指南(从基础到高级实践)》本文详解MySQL数据类型分类(数值、日期/时间、字符串)及表操作(创建、修改、维护),涵盖优化技巧如数据类型选择、备份、分区,强调规范设计与... 目录mysql数据类型详解数值类型日期时间类型字符串类型表操作全解析创建表修改表结构添加列修改列删除列

Go语言网络故障诊断与调试技巧

《Go语言网络故障诊断与调试技巧》在分布式系统和微服务架构的浪潮中,网络编程成为系统性能和可靠性的核心支柱,从高并发的API服务到实时通信应用,网络的稳定性直接影响用户体验,本文面向熟悉Go基本语法和... 目录1. 引言2. Go 语言网络编程的优势与特色2.1 简洁高效的标准库2.2 强大的并发模型2.

DNS查询的利器! linux的dig命令基本用法详解

《DNS查询的利器!linux的dig命令基本用法详解》dig命令可以查询各种类型DNS记录信息,下面我们将通过实际示例和dig命令常用参数来详细说明如何使用dig实用程序... dig(Domain Information Groper)是一款功能强大的 linux 命令行实用程序,通过查询名称服务器并输