当前位置: 首页 > news >正文

C 语言(二)


主要包括变量与常量、数据类型、存储方式、数制转换以及字符处理等内容

一、变量与常量
在 C 语言中,变量是用来存储数据的命名空间,它会在内存中分配地址。例如:int i; i = 12345; 其中 i 是变量,12345 是常量。

    常量表示在程序运行过程中不会改变的值,而变量 i 会在 RAM(随机访问内存)中被分配一段空间,用于存放数据。

变量的命名规范如下:由字母、数字和下划线组成;首字符不能为数字;

此外,还了解了整数的不同表示形式:
十进制:直接写出数值,如 123;
八进制:以 0 开头,如 0123;
十六进制:以 0x 开头,如 0x1A3;

二、整型变量与存储
C 语言中常用的整型有:int、short、long、long long 等。可以使用 sizeof 操作符查看某变量占用的字节数,例如:
int i;
printf("%d\n", sizeof(i));

在学习中还涉及了小端存储方式,即低地址存储低位,高地址存储高位。

signed int 表示有符号整型,通常占 4 个字节。
unsigned int 表示无符号整型,即只表示正数。

负数在计算机中采用补码存储:
正数的补码 = 原码
负数的补码 = 原码取反加一

存储在 RAM 中的目的是为了将人类可读的十进制数据转换为计算机内部使用的二进制形式进行处理。

整数的打印格式:
%d:打印有符号整型
%u:打印无符号整型

不同整型的范围要注意防止“溢出”现象。

三、浮点型数据与存储
浮点型变量打印格式:%f
科学计数:12.3e2 表示 12.3 × 10²

float:单精度,占 4 字节
double:双精度,占 8 字节

IEEE 754 标准将 float 表示为:1 位符号位 + 8 位阶码 + 23 位尾数。

示例:float f = -6.25;
其存储过程如下:
1. 符号位为 1(负数)
2. 6.25 转换为二进制为 110.01 = 1.1001 × 2²
3. 阶码:127 + 2 = 129(二进制为 10000001)
4. 尾数:1001 后补 0 补齐到 23 位
5. 拼接后转换为十六进制为:C0 C8 00 00(小端存储方式)

四、数据类型匹配与类型转换
变量赋值与使用时需注意数据类型匹配,防止精度丢失或误读。
对浮点型数据进行比较时,尽量避免直接使用等号判断,可设定误差范围。
字符型和整型是兼容的,字符变量可存储整数值,对应 ASCII 表中的字符。

示例:
#include<stdio.h>
int main(void) {
char c;
c = 107;
printf("%c\n", c); // 输出 k(ASCII 表中 107 对应的字符)
}

如果将 c 改为:c = 'H'; 那么输出结果就是 H。

通过学习 ASCII 表,可以更加直观理解字符与整型之间的对应关系。


文章转载自:
http://chemosensory.isnyv.cn
http://carnivorous.isnyv.cn
http://anonaceous.isnyv.cn
http://actinism.isnyv.cn
http://agitate.isnyv.cn
http://camp.isnyv.cn
http://argumental.isnyv.cn
http://cannel.isnyv.cn
http://chilly.isnyv.cn
http://aleph.isnyv.cn
http://built.isnyv.cn
http://chipper.isnyv.cn
http://agenda.isnyv.cn
http://avalanchine.isnyv.cn
http://amylopectin.isnyv.cn
http://blackamoor.isnyv.cn
http://blackbuck.isnyv.cn
http://absenteeism.isnyv.cn
http://blastomycete.isnyv.cn
http://calinago.isnyv.cn
http://bustle.isnyv.cn
http://agrotechnical.isnyv.cn
http://adenoid.isnyv.cn
http://arbitrary.isnyv.cn
http://ashimmer.isnyv.cn
http://amvets.isnyv.cn
http://begrime.isnyv.cn
http://ablator.isnyv.cn
http://centered.isnyv.cn
http://bvi.isnyv.cn
http://www.dtcms.com/a/280533.html

相关文章:

  • GaussDB 数据库架构师修炼(三) 集群管理概览
  • Kafka 4.0 技术深度解析
  • 现代CSS实战:用变量与嵌套重构可维护的前端样式
  • Go 错误处理全解析:从 error 到 panic
  • Go 包管理工具详解:安装与使用指南
  • 【轨物方案】当补贴退潮,光伏电站如何回归价值本质?
  • 上公网-从内网到公网
  • 李宏毅《生成式人工智能导论》 | 第9讲 AI Agent
  • 本地电脑安装Dify|内网穿透到公网
  • 1.1 前端-vue3项目的创建
  • JS基础知识(下)
  • docker容器、宿主机、cpu核数关系
  • c# sqlsugar 主子表明细 查询
  • C语言操作符补充
  • linux系统------HAProxy 配置
  • 酷淘商场项目【从零到一详解】Web端抓包操作与测试报告(二)
  • 部署项目将dll放到system32?不可取
  • Ubuntu环境下的K3S集群搭建
  • 【如何理解SerializedProperty】
  • 【项目】-番茄时钟设计
  • 云手机隐私保护指南:如何保障账号与数据的云端安全?
  • 编程技能:多文件编译
  • 本地 LLM API Python 项目分步指南
  • 20250715给荣品RD-RK3588开发板刷Android14时打开USB鼠标
  • Android 获取 UserAgent (UA) 的三种方式深度解析:差异、风险与最佳实践
  • Hystrix与Resilience4j在微服务熔断降级中的应用对比与实战
  • 用 K-means 算法实现水果分堆
  • 《大数据技术原理与应用》实验报告四 MapReduce初级编程实践
  • 多网卡环境下访问跨网段设备的排查与配置指南
  • iOS高级开发工程师面试——关于网络