news 2026/4/22 19:15:29

第3课:变量与常量

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第3课:变量与常量

第3课:变量与常量 - 知识点总结

一、计算机内存基础

  • RAM(随机存取存储器):程序运行时存储数据的临时内存,断电后数据丢失
  • 内存单位:字节(Byte) → 千字节(KB) → 兆字节(MB) → 千兆字节(GB),每个级别相差1024倍
  • 内存地址:每个字节都有唯一地址,C编译器自动管理地址

二、变量(Variable)

1. 变量定义

  • 命名数据存储位置,程序执行期间值可变化

2. 命名规则

  • 允许字符:字母(a-z, A-Z)、数字(0-9)、下划线(_)
  • 首字符:必须是字母或下划线(不推荐下划线开头)
  • 大小写敏感:count ≠ Count ≠ COUNT
  • 不能使用C语言关键字(如int, double等)
  • 长度限制:通常前31个字符有效

3. 命名风格

  • 下划线风格:interest_rate(本书使用)
  • 驼峰风格:interestRate(流行风格)

三、数值数据类型

1. 整型(整数,无小数)

类型关键字字节取值范围
字符char1-128 ~ 127
短整型short2-32768 ~ 32767
整型int4-2,147,483,648 ~ 2,147,483,647
长整型long4同int
长长整型long long8-9.22×10¹⁸ ~ 9.22×10¹⁸

2. 无符号整型(非负数)

类型关键字字节取值范围
无符号字符unsigned char10 ~ 255
无符号短整型unsigned short20 ~ 65535

3. 浮点型(实数,有小数)

  • float:单精度浮点数
  • double:双精度浮点数(更精确)

四、变量声明与初始化

1. 声明格式

类型名 变量名;类型名 变量名1,变量名2,变量名3;

示例:

intcount;floatpercent,total;

2. 初始化

  • 声明后初始化
intcount;count=0;
  • 声明时初始化
intcount=0;doublepercent=0.01;

3. typedef关键字

  • 为已有类型创建别名(不是新类型)
typedefintinteger;integer count;// 等同于 int count;

五、常量(Constant)

1. 字面常量

  • 直接写在代码中的值
intcount=20;// 20是整型字面常量floattax=0.28;// 0.28是浮点型字面常量

2. 字面常量表示法

  • 十进制:123(非0开头)
  • 八进制:0123(0开头)
  • 十六进制:0x1A3(0x或0X开头)
  • 科学计数法:1.23E2 = 123

3. 符号常量

  • 通过名称引用的常量值
定义方法1:#define指令
#definePI3.14159#defineMAX_SIZE100
  • 惯例:常量名全大写
  • 位置:通常放在文件开头
  • 注意:行末无分号
定义方法2:const关键字
constfloatPI=3.14159;constintMAX=100;
  • 声明后不能修改
constintcount=100;count=200;// 错误!不能修改const变量

4. 符号常量的优势

  1. 代码可读性:PI比3.14159更易理解
  2. 易于维护:只需修改一处定义

六、示例程序分析

#include<stdio.h>#defineLAPS_PER_MILE4// #define定义的符号常量constintCURRENT_YEAR=2013;// const定义的符号常量floatmiles_covered;intlaps_run,year_of_birth,current_age;intmain(void){printf("How many laps did you run: ");scanf("%d",&laps_run);printf("Enter your year of birth: ");scanf("%d",&year_of_birth);miles_covered=(float)laps_run/LAPS_PER_MILE;// 使用符号常量current_age=CURRENT_YEAR-year_of_birth;// 使用符号常量printf("\nYou ran %.2f miles.",miles_covered);printf("\nNot bad for someone turning %d this year!\n",current_age);return0;}

七、重要注意事项

  1. 变量必须先声明后使用
  2. 初始化值不能超出类型范围
  3. 字面常量根据写法确定类型:100(整型) vs 100.0(浮点型)
  4. #define与const的区别:涉及指针和作用域(后续课程讲解)
  5. 选择合适的类型:根据数据大小和精度选择,优化内存使用和性能

八、最佳实践

  1. 使用描述性的变量名
  2. 符号常量名用大写字母
  3. 变量声明时尽量初始化
  4. 根据数据特征选择合适的类型
  5. 使用const保护不应修改的值
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 16:12:01

终极指南:使用lm-sensors实现Linux系统智能散热监控

终极指南&#xff1a;使用lm-sensors实现Linux系统智能散热监控 【免费下载链接】lm-sensors lm-sensors repository 项目地址: https://gitcode.com/gh_mirrors/lm/lm-sensors 当你的服务器在深夜突然宕机&#xff0c;或者个人电脑在游戏过程中频繁卡顿&#xff0c;这些…

作者头像 李华
网站建设 2026/4/20 23:17:50

如何撰写一篇吸引人的TensorRT技术博客引流?

如何撰写一篇吸引人的TensorRT技术博客引流&#xff1f; 在AI模型越来越大、推理需求越来越实时的今天&#xff0c;很多开发者都遇到过这样的尴尬&#xff1a;训练好的模型放进生产环境&#xff0c;延迟高得让人无法接受&#xff0c;吞吐量却低得像蜗牛爬。明明GPU风扇呼呼转&a…

作者头像 李华
网站建设 2026/4/21 14:56:19

5分钟从零到一:AI文本生成平台的终极实践指南

5分钟从零到一&#xff1a;AI文本生成平台的终极实践指南 【免费下载链接】one-click-installers Simplified installers for oobabooga/text-generation-webui. 项目地址: https://gitcode.com/gh_mirrors/on/one-click-installers 你是否曾经想过&#xff0c;为什么别…

作者头像 李华
网站建设 2026/4/18 15:05:27

APT离线管理完全解决方案:彻底告别网络依赖

在当今高度互联的时代&#xff0c;断网环境下的软件包管理成为许多Linux用户面临的现实挑战。apt-offline作为一款专为Debian/Ubuntu系统设计的离线包管理工具&#xff0c;通过创新的签名机制和智能依赖解析&#xff0c;为无网络环境下的软件安装、更新和维护提供了完整的解决方…

作者头像 李华
网站建设 2026/4/21 23:20:37

KKS-HF_Patch完整攻略:轻松实现Koikatsu Sunshine汉化与去和谐

KKS-HF_Patch完整攻略&#xff1a;轻松实现Koikatsu Sunshine汉化与去和谐 【免费下载链接】KKS-HF_Patch Automatically translate, uncensor and update Koikatsu Sunshine! 项目地址: https://gitcode.com/gh_mirrors/kk/KKS-HF_Patch 还在为Koikatsu Sunshine的语言…

作者头像 李华
网站建设 2026/4/20 9:31:24

ESP32-Camera终极指南:5分钟快速配置与图像处理实战

ESP32-Camera终极指南&#xff1a;5分钟快速配置与图像处理实战 【免费下载链接】esp32-camera 项目地址: https://gitcode.com/gh_mirrors/es/esp32-camera 你是否曾经想过将一个小巧的摄像头模块连接到ESP32开发板上&#xff0c;实现实时图像采集和智能处理&#xff…

作者头像 李华