一、基本数据类型

C 语言提供了丰富的基本数据类型,用于存储不同类型的数据,主要包括整数类型、浮点类型和布尔类型。

1. 整数类型

整数类型用于存储整数,根据是否带符号以及占用存储空间的不同,可进一步细分:

类型名占用存储空间数值范围
char1 字节-128 到 127 或者 0 到 255
unsigned char1 字节0 到 255
signed char1 字节-128 到 127
short至少 2 字节-32,768 到 32,767
unsigned short至少 2 字节0 到 65,535
int至少 2 字节通常与机器字长一致
unsigned int至少 2 字节0 到 4,294,967,295(32 位系统)
long至少 4 字节-2,147,483,648 到 2,147,483,647
unsigned long至少 4 字节0 到 4,294,967,295
long long至少 8 字节-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
unsigned long long至少 8 字节0 到 18,446,744,073,709,551,615

2. 浮点类型

浮点类型用于存储带小数点的数值,有单精度和双精度之分:

类型名占用存储空间精度数值范围
float4 字节约 6-7 位有效数字±1.2E-38 到 ±3.4E+38
double8 字节约 15-16 位有效数字±2.2E-308 到 ±1.8E+308
long double8 字节或更多至少和 double 一样高取决于具体实现

3. 布尔类型

C 语言原本没有专门的布尔类型,不过在 C99 标准中引入了_Bool类型,并且可以通过包含stdbool.h头文件使用bool别名:

类型名占用存储空间取值
_Bool1 字节0(假)或 1(真)
bool1 字节false 或 true

二、各种变量的格式占位符

在使用printfscanf等函数时,需要使用格式占位符来指定数据的输出和输入格式。

1. 常用的格式占位符

  • int:%d
  • double:%lf
  • float:%f
  • long long:%lld

2. 整数占位符

整数占位符用于处理不同类型的整数数据:

占位符对应数据类型说明
%dint以十进制形式输出有符号整数
%iint与 % d 相同,也用于输出十进制整数
%uunsigned int以十进制形式输出无符号整数
%ounsigned int以八进制形式输出无符号整数
%xunsigned int以十六进制形式输出无符号整数(小写字母)
%Xunsigned int以十六进制形式输出无符号整数(大写字母)
%ldlong以十进制形式输出长整型
%luunsigned long以十进制形式输出无符号长整型
%lldlong long以十进制形式输出长长整型
%lluunsigned long long以十进制形式输出无符号长长整型

3. 浮点占位符

浮点占位符用于处理浮点数数据:

占位符对应数据类型说明
%ffloat/double以十进制小数形式输出(默认 6 位小数)
%efloat/double以科学计数法形式输出(小写 e)
%Efloat/double以科学计数法形式输出(大写 E)
%gfloat/double自动选择 % f 或 % e 中更简洁的形式输出
%Gfloat/double自动选择 % f 或 % E 中更简洁的形式输出

4. 字符与字符串占位符

字符与字符串占位符用于处理字符和字符串数据:

占位符对应数据类型说明
%cchar输出单个字符
%schar*输出字符串,直到遇到 \0 结束
%pvoid*输出指针地址(以十六进制形式)

5. 其他占位符

其他占位符用于特殊需求:

占位符对应数据类型说明
%%输出百分号 % 本身
%nint*将已输出的字符数存储到指定的整型指针中

6. 格式控制选项

在 % 和占位符之间,还可以使用一些修饰符来更精确地控制输出格式:

  • 宽度控制:例如%5d表示输出宽度为 5 的整数,不足部分用空格填充。
  • 精度控制:例如%.2f表示输出保留两位小数的浮点数。
  • 对齐方式:例如%-10s表示左对齐输出宽度为 10 的字符串。
  • 符号控制:例如%+d表示输出带符号的整数,正数也会显示 + 号。
  • 填充字符:例如%05d表示用 0 填充宽度不足的部分,如输出 00042。

7. 注意事项

  • 在使用scanf读取字符串时,%s会在遇到空格、制表符或换行符时停止读取。若要读取包含空格的字符串,可以使用%[^\n]
  • 占位符要和对应变量的类型相匹配,否则可能会导致未定义行为。
  • %n是一个比较特殊的占位符,使用时需要格外小心,因为它可能会引发安全漏洞。
  • 对于long long类型,在 Windows 系统的某些编译器中可能需要使用%I64d

三、系统函数调用

在 C 语言中,可以使用system("")函数来调用系统命令,该函数需要包含头文件stdlib.h

1. 常用系统指令

  • cls:清屏
  • pause:按任意键继续
  • cmd:打开 cmd

2. 其他命令(win 系统命令不区分大小写)

以下是一些常用的 Windows 系统命令:

  • ASSOC:显示或修改文件扩展名关联
  • ATTRIB:显示或更改文件属性
  • BREAK:设置或清除扩展式 CTRL+C 检查
  • BCDEDIT:设置启动数据库中的属性以控制启动加载
  • CACLS:显示或修改文件的访问控制列表 (ACL)
  • CALL:从另一个批处理程序调用这一个
  • CD:显示当前目录的名称或将其更改
  • CHCP:显示或设置活动代码页数
  • CHDIR:显示当前目录的名称或将其更改
  • CHKDSK:检查磁盘并显示状态报告
  • CHKNTFS:显示或修改启动时间磁盘检查
  • COLOR:设置默认控制台前景和背景颜色
  • COMP:比较两个或两套文件的内容
  • COMPACT:显示或更改 NTFS 分区上文件的压缩
  • CONVERT:将 FAT 卷转换成 NTFS,你不能转换当前驱动器
  • COPY:将至少一个文件复制到另一个位置
  • DATE:显示或设置日期,后面加/t表示显示日期
  • DEL:删除至少一个文件
  • DIR:显示一个目录中的文件和子目录
  • DISKPART:显示或配置磁盘分区属性
  • DOSKEY:编辑命令行、撤回 Windows 命令并创建宏
  • DRIVERQUERY:显示当前设备驱动程序状态和属性
  • ECHO:显示消息,或将命令回显打开或关闭
  • ENDLOCAL:结束批文件中环境更改的本地化
  • ERASE:删除一个或多个文件
  • EXIT:退出 CMD.EXE 程序 (命令解释程序)
  • FC:比较两个文件或两个文件集并显示它们之间的不同
  • FIND:在一个或多个文件中搜索一个文本字符串
  • FINDSTR:在多个文件中搜索字符串
  • FOR:为一组文件中的每个文件运行一个指定的命令
  • FORMAT:格式化磁盘,以便用于 Windows
  • FSUTIL:显示或配置文件系统属性
  • FTYPE:显示或修改在文件扩展名关联中使用的文件类型
  • GOTO:将 Windows 命令解释程序定向到批处理程序中某个带标签的行
  • GPRESULT:显示计算机或用户的组策略信息
  • GRAFTABL:使 Windows 在图形模式下显示扩展字符集
  • HELP:提供 Windows 命令的帮助信息
  • ICACLS:显示、修改、备份或还原文件和目录的 ACL
  • IF:在批处理程序中执行有条件的处理操作
  • LABEL:创建、更改或删除磁盘的卷标
  • MD:创建一个目录
  • MKDIR:创建一个目录
  • MKLINK:创建符号链接和硬链接
  • MODE:配置系统设备
  • MORE:逐屏显示输出
  • MOVE:将一个或多个文件从一个目录移动到另一个目录
  • OPENFILES:显示远程用户为了文件共享而打开的文件
  • PATH:为可执行文件显示或设置搜索路径
  • PAUSE:暂停批处理文件的处理并显示消息
  • POPD:还原通过 PUSHD 保存的当前目录的上一个值
  • PRINT:打印一个文本文件
  • PROMPT:更改 Windows 命令提示
  • PUSHD:保存当前目录,然后对其进行更改
  • RD:删除目录
  • RECOVER:从损坏的或有缺陷的磁盘中恢复可读信息
  • REM:记录批处理文件或 CONFIG.SYS 中的注释 (批注)
  • REN:重命名文件
  • RENAME:重命名文件
  • REPLACE:替换文件
  • RMDIR:删除目录
  • ROBOCOPY:复制文件和目录树的高级实用工具
  • SET:显示、设置或删除 Windows 环境变量
  • SETLOCAL:开始本地化批处理文件中的环境更改
  • SC:显示或配置服务 (后台进程)
  • SCHTASKS:安排在一台计算机上运行命令和程序
  • SHIFT:调整批处理文件中可替换参数的位置
  • SHUTDOWN:允许通过本地或远程方式正确关闭计算机
  • SORT:对输入排序
  • START:启动单独的窗口以运行指定的程序或命令
  • SUBST:将路径与驱动器号关联
  • SYSTEMINFO:显示计算机的特定属性和配置
  • TASKLIST:显示包括服务在内的所有当前运行的任务
  • TASKKILL:中止或停止正在运行的进程或应用程序
  • TIME:显示或设置系统时间,后面加/t表示显示时间
  • TITLE:设置 CMD.EXE 会话的窗口标题,如TITLE 你想改成啥
  • TREE:以图形方式显示驱动程序或路径的目录结构,如TREE D:
  • TYPE:显示文本文件的内容,如TYPE D:\\文本.txt
  • VER:显示 Windows 的版本
  • VERIFY:告诉 Windows 是否进行验证,以确保文件正确写入磁盘
  • VOL:显示磁盘卷标和序列号
  • XCOPY:复制文件和目录树
  • WMIC:在交互式命令 shell 中显示 WMI 信息

四、运算符优先级

C++ 运算符的优先级决定了表达式中运算符的计算顺序,以下是 C 语言中运算符的优先级列表,按照从高到低的顺序排列,同一行中的运算符具有相同的优先级:

优先级运算符结合性
优先级 1::(作用域解析)从左到右
优先级 2++、--(后缀)
()(函数调用)
[](数组下标)
.(成员访问)
->(通过指针的成员访问)
从左到右
优先级 3++、--(前缀)
+、-(一元)
!、~(逻辑非、按位取反)
(type)(强制类型转换)
*(解引用)
&(取地址)
sizeof
new、delete
从右到左
优先级 4.、->(成员指针访问)从左到右
优先级 5*、/、%(乘、除、取模)从左到右
优先级 6+、-(加、减)从左到右
优先级 7<<、>>(位左移、位右移)从左到右
优先级 8<、<=、>、>=(关系比较)从左到右
优先级 9==、!=(相等性比较)从左到右
优先级 10&(按位与)从左到右
优先级 11^(按位异或)从左到右
优先级 12`(按位或)从左到右
优先级 13&&(逻辑与)从左到右
优先级 14||(逻辑或)从左到右
优先级 15?:(三元条件)从右到左
优先级 16=、+=、-=、*=、/=、%=
<<=、>>=、&=、^=、`=
从右到左
优先级 17,(逗号)从左到右

注意事项

  1. 优先级高的运算符先计算,例如a + b * c中,乘法先计算,因为*的优先级高于+
  2. 结合性决定相同优先级运算符的计算顺序,例如赋值运算符是右结合的,因此a = b = c等价于a = (b = c)
  3. 使用括号()可以强制改变计算顺序,例如(a + b) * c中加法先计算。
  4. 逻辑运算符&&||具有短路特性,即当结果可以提前确定时,不会计算后续表达式。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

应用在核电行业的虚拟现实解决方案

核能领域正处于创新与责任的交汇点。尽管核反应堆提供了高效且可持续的能源&#xff0c;但由于放射性物质的危险性&#xff0c;其也带来了独特挑战。虚拟现实&#xff08;VR&#xff09;技术正通过为远程操作、应急响应和放射性物质处理提供先进解决方案&#xff0c;彻底革新这…

CTF Web的数组巧用

PHP数组绕过intval和preg_match的CTF技巧 原题目 <?php include("flag.php"); // 引入flag文件&#xff0c;flag变量在这里定义 show_source("index.php"); // 显示index.php文件的源码&#xff08;方便选手查看&#xff09;// 判断是否通过GET方式传入…

vue2+elementui使用compressorjs压缩上传的图片

首先是npm install compressorjs 然后新建一个compressorjs.js的文件 import Compressor from "compressorjs";// 默认压缩配置 const DEFAULT_COMPRESS_OPTIONS {quality: 0.6, // 默认压缩质量 (0-1)maxWidth: 1920, // 最大宽度maxHeight: 1080, // 最大高度con…

GPIO详解:不仅仅是输入输出那么简单

GPIO详解&#xff1a;不仅仅是输入输出那么简单 “别小看一个小小的引脚&#xff0c;它可是 MCU 世界的社交之门。” &#x1f44b; 先打个招呼&#xff1a;什么是 GPIO&#xff1f; GPIO&#xff0c;全称是 General Purpose Input/Output —— 通用输入输出口。 简单说&…

深度学习5(深层神经网络 + 参数和超参数)

深层神经网络简介 深层神经网络是机器学习中一种重要的模型&#xff0c;它通过增加网络的“深度”&#xff08;即隐藏层的数量&#xff09;来提升模型对复杂数据的表示和学习能力。同浅层类似&#xff0c;也分为三个部分&#xff1a; 输入层&#xff1a;接收原始数据&#xff…

时间复杂度与空间复杂度分析

一、什么是复杂度&#xff1f; 1.1 为什么需要复杂度分析&#xff1f; 假设你写了两个程序来解决同一个问题&#xff0c;如何判断哪个程序更好&#xff1f;我们不能只看运行时间&#xff0c;因为&#xff1a; 不同电脑性能不同同一电脑在不同时刻状态也不同数据规模不同&#x…

上下文工程:从提示词到自动化流程的AI应用新范式

上下文工程&#xff1a;从提示词到自动化流程的 AI 应用新范式 一、背景与概述&#xff1a;从提示词工程到上下文工程的演进 随着大语言模型 (LLM) 技术的飞速发展&#xff0c;AI 应用开发正经历从 “提示词工程”(Prompt Engineering) 到 “上下文工程”(Context Engineerin…

HTML网页应用打包Android App 完整实践指南

技术准备与工具下载 必需工具清单 在开始之前&#xff0c;需要准备以下开发工具&#xff1a; Android Studio官网&#xff1a;https://developer.android.com/studio HBuilderX官网&#xff1a;https://www.dcloud.io/hbuilderx.html 离线SDK下载&#xff1a;https://nati…

简单 Python 爬虫程序设计

爬虫是获取网页数据的常用工具&#xff0c;我们一起来设计一个基于 requests 和 BeautifulSoup 的简单爬虫&#xff0c;它可以获取网页内容并提取文本信息。 所需库安装 首先需要安装两个必要的库&#xff1a; pip install requests beautifulsoup4 完整代码 import reques…

AUTOSAR图解==>AUTOSAR_AP_EXP_ARAComAPI

AUTOSAR ara::com API详解 自适应平台通信API技术详解 目录 1. 概述2. ara::com API架构 2.1 Proxy/Skeleton架构2.2 通信方式2.3 服务连接方式 3. 详细API说明 3.1 Proxy类3.2 Skeleton类3.3 实例标识符3.4 通信组 4. ara::com API状态管理 4.1 服务生命周期4.2 事件与方法状…

Spring Boot + 本地部署大模型实现:优化与性能提升

在将大语言模型集成到 Spring Boot 应用中时&#xff0c;性能优化是一个关键环节。本地部署的大模型虽然提供了强大的功能&#xff0c;但也可能带来一些性能挑战&#xff0c;如响应时间较长、资源占用较高等问题。本文将介绍如何在 Spring Boot 应用中优化本地部署大模型的性能…

QML 鼠标只响应左键处理方法

【1】问题描述 默认情况下qml支持左键&#xff0c;如果需要支持右键&#xff0c;甚至是中键那需要设置 【2】设置方法 MouseArea{ id: mouse anchors.fill: parent property int cx: 0 pr…

北方算网亮相2025全球数字经济大会|共绘数字友好城市建设

7月2日&#xff0c;以“建设数字友好城市”为主题的2025全球数字经济大会隆重开幕&#xff0c;为构建技术与人、城市与生态和谐共进的全球数字经济新生态提供交流合作平台。自7月3日开始&#xff0c;北方算网将在大会集中亮相&#xff0c;先后在多个论坛中发表主题演讲&#xf…

Android PNG/JPG图ARGB_8888/RGB_565‌解码形成Bitmap在物理内存占用大小的简单计算

Android PNG/JPG图ARGB_8888/RGB_565‌解码形成Bitmap在物理内存占用大小的简单计算 Android的Bitmap 是一个用于表示图像数据的核心类&#xff0c;代表一张图片在内存中的存储&#xff0c;Bitmap存储了图像的像素信息数据。 Bitmap把图像理解为像素点组成的二维矩阵&#xff…

力扣网编程55题:跳跃游戏之逆向思维

一. 简介 前面一篇文章使用贪心算法解决 力扣网55题&#xff1a;跳跃游戏&#xff0c;文章如下&#xff1a; 力扣网编程55题&#xff1a;跳跃游戏之贪心算法-CSDN博客 二. 力扣网编程55题&#xff1a;跳跃游戏之逆向思维 给你一个非负整数数组 nums &#xff0c;你最初位于数…

苍穹外卖--day12数据统计-Excel报表

1.工作台1.1实现思路工作台是系统运营的数据看板&#xff0c;并提供快捷操作入口&#xff0c;可以有效提高商家的工作效率。工作台展示的数据&#xff1a;①今日数据②订单管理③菜品总览④套餐总览⑤订单信息名词解释&#xff1a;①营业额&#xff1a;已经完成订单的总金额②有…

鸿蒙应用开发:从网络获取数据

一、网络状态概述上述任一指标的变化均可视为网络状态的改变 二、获取网络信息 创建网络对象 //创建网络对象 //?表示可传可不传 connection.createNetConnection(netSpecifier?:NetSpecifier,timeout?:number):NetConnection;获取默认激活网络及其能力 //获取默认激活网络 …

探索开源虚拟 Excel 函数模块:Python 中的 Excel 功能利器

在数据处理和分析的领域中&#xff0c;Excel 一直是一款备受青睐的工具&#xff0c;它提供了丰富多样的函数&#xff0c;帮助用户高效地完成各种数据操作。而现在&#xff0c;我&#xff08;董翔&#xff09;开发一个基于 Python 的虚拟 Excel 函数模块&#xff0c;它将 Excel …

开源 vGPU 方案 HAMi: corememory 隔离测试

本文主要对开源的 vGPU 方案 HAMi 的 GPU Core&Memory 隔离功能进行测试。 省流&#xff1a; HAMi vGPU 方案提供的 Core&Memory 隔离基本符合预期&#xff1a; Core 隔离&#xff1a;Pod 能使用的算力会围绕设定值波动&#xff0c;但是一段时间内平均下来和申请的 g…

openstack安装并初始化

openstack安装并初始化openStack 概述OpenStack 起源什么是Openstackopenstack优势使用本地仓库离线安装系统基本环境设置为系统设置本地仓库创建openstack-train的仓库更新系统安装部署工具一键安装设置桥接网络通过 Dashboard 体验 OpenStack 功能创建云主机创建网络(1)用adm…