C语言参悟-数据类型

news2024/9/27 17:32:20

C语言的数据类型

  • 一、概述
  • 二、基础数据类型
    • 1. 整数
      • 1. 计算
      • 2. 索引
    • 2. 浮点数
    • 3. 字符
    • 4. 字符串
    • 5. 指针
  • 三、特殊数据类型
    • 1. 枚举
    • 2. 共用体
    • 2. struct结构体
  • 四、数据类型修饰符
    • 1. const
    • 2. unsigned、signed

一、概述

编程语言为抽象这个物理世界提供了依据,其中对于描述物理世界的情况提供了一个叫做数据类型的名字,这种数据类型是我们人类能够认识的东西,就像数字,字母,字符之类的。

C语言中也提供了数据类型这种说法,就像下面的图片里面猴子,我们用C语言描述图片里面的猴子,就可以用 C语言里面的 字符串 数据类型来描述:

char * imageDescription = "两只猴子,一个大猴子,一个小猴子";

在这里插入图片描述
下面是我对 C语言里面的数据类型的理解使用参悟。

二、基础数据类型

1. 整数

C语言里面的整数类型标识符就是:int, long, long longshort,就行 0,-1,-23,4235 等等,也就是不带小数的整数。最常用的是 int。 long, long long适合大场景的整数 ,相对于整数只是存的数值范围比较大而已,属性基本一致,后面我都是用int来举例代表整数的。short 就是使用时相对较小的索引范围值而已。在后面会有一个专门的表去归纳这些变量的内存模型。

C语言里面的整数用处很多,因为计算内部都是用二进制表示数据的,里面的数据本质上都是整数的,浮点数也是用二进制整数去描述的。整数有很多的性质都十分有用,比如整数除法的结果也是整数等等。整数在计算之外的最大用处就是索引,在数组、循环、判断、地址索引等场景都是用的整数去做的。

1. 计算

声明一个 int 变量也很简单的,直接是 int 变量名;如果没初始化默认是给的一个随机值,一定要记得初始化哈。因为在像循环的时候,总是得从一个有效的开始索引进行索引,如果没设置好值,这就会出问题,就会出现段错误。

C语言整数一个很有用的计算就是 除法, 而且 取余 运算只能 整数 哦

就像下面,除法会把除出来的数的小数部分给抛掉,只保留整数部分

// 声明变量并初始化,初始化就使用 = 
int i = 0;

i = 1 / 2;	//i = 0

取余 运算也是很简单的

int i = 11;

i = i / 2;	//i = 0

对应 最经典便是 个十百位

#include <stdio.h>

int main()
{
    int numA, numB, numC, numD;
    printf("请输入一个三位数: ");
    scanf("%d", &numA);
    numA = (int)numA;
    numD = numA % 10;
    numC = (numA / 10) % 10;
    numB = numA / 100;
    printf("这个三位数的个十百分别为:%d %d %d",numD, numC, numB);
    return 0;
}

2. 索引

数组的本质其实就是一个数据表,一维数组就是单行表,二维数组就是多行表,整数在索引的时候其实就可以当一个表示位置的强大工具。

就像下面的一个二维数据表就是用的 行 - 列 来确定位置的,这里用浮点数明显就是不行的。

表[ 行索引 ][ 列索引 ] 来确定一个位置的值
在这里插入图片描述

int martx[3][3] = {{0, 1, 2}, {4, 5, 6}, {7, 8, 9}};

对于上面的 martx 数组, 我们要取得 第 2 行,第 1 列的数据就是使用 martx[1][0]

最灵活的莫过于 对这个 索引 的变化。

2. 浮点数

浮点数其实就是 小数,对了科学计数法的写法也是浮点数类型哈。

在C语言里面的 浮点数的类型就是 float, double 两个类型,其实就是一个精度低,精度高的区别,一般使用double的多些。

对于这个的使用其实并不会太过多的考虑,但是要考虑到一个就是在 他和其他数据运算的时候,有他就会让数据的类型往浮点数靠

就像 7+7.32 的结果 就是浮点型
但 7+7 的结果就是 整型

3. 字符

4. 字符串

5. 指针

指针就是一个数据类型,专门存放其他变量的地址的一个类型。指针是一个很大内容,有兴趣可以看看我的笔记

指针入门基础
C的动态内存管理
指针与函数
指针和数组
指针与字符串

三、特殊数据类型

1. 枚举

enum

2. 共用体

uion

2. struct结构体

struct结构体 C语言给我们提供的一个开放的定义自己的 数据类型 的一个强大工具,我们可以用 struct 去描述一个数据结构,在这个结构里面用的就是上面提到的数据类型。

四、数据类型修饰符

1. const

2. unsigned、signed

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/838356.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[Docker实现测试部署CI/CD----自由风格和流水线的CD操作(6)]

目录 12、自由风格的CD操作发布 V1.0.0 版本修改代码并推送GitLab 中项目打 Tag 发布 V2.0.0 版本Jenkins 配置 tag 参数添加 Git 参数添加 checkout 命令修改构建命令配置修改 SSH 配置 部署 v1.0.0重新构建工程构建结果 部署 v2.0.0重新构建工程访问 部署v3.0.0 13、流水线任…

Delphi Architect Crack,部署支持Swagger

Delphi Architect Crack,部署支持Swagger 单一代码库-用更少的编码工作为所有主要平台创建应用程序。写一次&#xff0c;到处编译。 Windows-使用最新的用户界面控件、WinRT API和HighDPI相关功能&#xff0c;使Windows的VCL应用程序现代化。 远程桌面-使用改进的VCL和IDE远程桌…

Java问题排查工具Arthas安装教程

Java问题排查工具Arthas入门教程 什么是阿里Arthas&#xff1f; 在生产环境经常遇到大量的日志&#xff0c;同时还有一些性能问题&#xff0c;需要进行进程分析&#xff0c;排查&#xff0c;有时候确实比较花时间&#xff0c;所以可以借助一些开源的框架来实现&#xff0c;Art…

全志F1C200S嵌入式驱动开发(从DDR中截取内存)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 linux内核起来的时候,不一定所有的内存都是分配给linux使用的。有的时候,我们是希望能够截留一部分内存的。为什么保留这部分内存呢?这里面可以有很多的用途。比如说,第一,如果…

Python GUI编程(Tkinter)

Python GUI编程(Tkinter) Python 提供了多个图形开发界面的库&#xff0c;几个常用 Python GUI 库如下&#xff1a; Tkinter&#xff1a; Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows …

Qt下载慢/无法下载解决方式

文章目录 一. Qt在线安装下载二. 安装方式 一. Qt在线安装下载 官网下载&#xff1a;https://www.qt.io/download清华源下载&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/qt/official_releases/online_installers/ 二. 安装方式 进入下载好的目录 在目录栏输入CMD&…

vue+element中如何设置单个el-date-picker开始时间和结束时间关联

功能&#xff1a;选了开始时间&#xff0c;则结束时间只能选择开始时间之后的&#xff1b;选了结束时间&#xff0c;则开始时间只能选择结束时间之前的 重点是picker-options属性 图示&#xff1a; 代码展示: // body 内部<el-form-item><el-date-pickerv-model&qu…

vscode无法连接远程服务器的可能原因:远程服务器磁盘爆了

vscode输入密码后一直等待&#xff0c;无法进入远程服务器终端&#xff1a; 同时Remote-SSH输出包含以下内容 在日志中的以下几个部分&#xff1a; [17:15:05.529] > wget download failed 这表明VS Code尝试在远程服务器上下载VS Code服务器时失败了。> Cannot write…

程序环境和预处理(含C语言程序的编译+链接)--1

&#x1f389;个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名乐于分享在学习道路上收获的大二在校生 &#x1f43b;‍❄个人主页&#x1f389;&#xff1a;GOTXX &#x1f43c;个人WeChat&#xff1a;ILXOXVJE &#x1f43c;本文由GOTXX原创&#xff0c;首发CSDN…

嵌入式面试刷题(day3)

文章目录 前言一、怎么判断两个float是否相同二、float数据可以移位吗三、数据接收和发送端大小端不一致怎么办四、怎么传输float类型数据1.使用联合进行传输2.使用字节流3.强制类型转换 总结 前言 本篇文章我们继续讲解嵌入式面试刷题&#xff0c;给大家继续分享嵌入式中的面…

docker search 镜像报错: connect: no route to host (桥接模式配置静态IP)

如下 原因 可能有多种&#xff1a; ① 没有开放防火墙端口 ② ip地址配置有误 解决 我是因为虚拟机采用了桥接模式&#xff0c;配置静态ip地址有问题。 先确认虚拟机采用的是 桥接模式&#xff0c;然后启动虚拟机。 1、打开命令行&#xff0c;输入下面指令&#xff0c;打开…

【Docker】Docker容器数据卷、容器卷之间的继承和DockerFIle的详细讲解

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;陈童学哦&#xff0c;目前学习C/C、算法、Python、Java等方向&#xff0c;一个正在慢慢前行的普通人。 &#x1f3c0;系列专栏&#xff1a;陈童学的日记 &#x1f4a1;其他专栏&#xff1a;CSTL&…

大数据教材推荐|Python数据挖掘入门、进阶与案例分析

主 编&#xff1a; 卢滔&#xff0c;张良均&#xff0c;戴浩&#xff0c;李曼&#xff0c;陈四德 出版社&#xff1a; 机械工业出版社 内容提要 本书从实践出发&#xff0c;结合11个“泰迪杯”官方推出的赛题&#xff0c;按照赛题的难易程度进行排序&#xff0c;由浅入深…

Meta开源AI音频和音乐生成模型

在过去的几年里&#xff0c;我们看到了AI在图像、视频和文本生成方面的巨大进步。然而&#xff0c;音频生成领域的进展却相对滞后。MetaAI这次再为开源贡献重磅产品&#xff1a;AudioCraft&#xff0c;一个支持多个音频生成模型的音频生成开发框架。 AudioCraft开源地址 开源地…

阿里为啥禁止三表Join关联?

阿里出过一个《Java开发手册》&#xff0c;上面有一条规约是禁止超过三张表的join。 为什么要禁止&#xff0c;其实最主要的原因就是join的效率比较低。 mysql只有一种表连接类型:嵌套循环连接(nested-loop)&#xff0c;不支持排序-合并连接(sort-merge join)与散列连接(hash …

【动态规划刷题 5】 最小路径和地下城游戏

最小路径和 链接: 64. 最小路径和 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 输入&#xff1a;grid [[1,3,1],[1,5,1],[4,2,1]] 输…

《OWASP代码审计》学习——跨站脚本注入(XSS)

一、跨站脚本概述 1.什么是跨站脚本 跨站点脚本(XSS)是一种编码注入漏洞。它通常出现在 web 应用程序中。XSS 使攻击者能够向其他用户浏览的网页中注入恶意内容。XSS 允许攻击者绕过访问控制&#xff0c;它是 OWASP Top10 最常见的漏洞之一。XSS 是网络服务器上的第二大漏洞。…

CSS元素的显示模式

1、现在我想做成小米左侧边栏这样的效果&#xff0c;该怎么做呢&#xff1f; 2、小米商城触碰之后会显示出新的商品案例 3、一碰到之后会出现这个列表 4、这里涉及到了元素显示模式&#xff1a; 5、用人进行划分可以分为男人和女人&#xff0c;根据男人和女人的特性进行相应的…

Leetcode-每日一题【剑指 Offer 17. 打印从1到最大的n位数】

题目 输入数字 n&#xff0c;按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3&#xff0c;则打印出 1、2、3 一直到最大的 3 位数 999。 示例 1: 输入: n 1输出: [1,2,3,4,5,6,7,8,9] 说明&#xff1a; 用返回一个整数列表来代替打印 n 为正整数 解题思路 前置知识 M…

ChatGenTitle:使用百万arXiv论文信息在LLaMA模型上进行微调的论文题目生成模型

项目设计集合&#xff08;人工智能方向&#xff09;&#xff1a;助力新人快速实战掌握技能、自主完成项目设计升级&#xff0c;提升自身的硬实力&#xff08;不仅限NLP、知识图谱、计算机视觉等领域&#xff09;&#xff1a;汇总有意义的项目设计集合&#xff0c;助力新人快速实…