news 2026/4/16 9:18:36

C语言变量及操作符(部分)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C语言变量及操作符(部分)

C语言入门不迷路:变量与操作符(核心部分)

C语言作为一门经典的结构化编程语言,其基础在于*变量*(存储数据)和操作符(对数据进行操作)。掌握这两部分,你就能写出基本的计算和逻辑程序。下面重点讲解最常用、最核心的内容。

1. 变量(Variables)

变量本质:程序运行时在内存中分配的一块“命名空间”,用来存储数据。变量必须先声明后使用。

基本语法

类型 变量名;// 声明类型 变量名=初始值;// 声明并初始化

常见基本数据类型

类型占用字节(典型32/64位系统)取值范围(大致)用途示例
int4-2^31 ~ 2^31-1(约-21亿~21亿)整数、计数器
char1-128 ~ 127 或 0~255(unsigned)单个字符、ASCII码
float4约 ±3.4E±38(7位有效数字)单精度浮点数
double8约 ±1.7E±308(15位有效数字)双精度浮点数(推荐)
short int2-32768 ~ 32767节省空间的小整数
long int4或8取决于系统大整数
long long8-9E18 ~ 9E18超大整数

修饰符

  • signed(默认):可正可负
  • unsigned:只正数,范围翻倍(如unsigned int0~4亿多)
  • const:常量,值不可修改
  • volatile:告诉编译器值可能被外部改变(硬件相关)

命名规则

  • 只能由字母、数字、下划线组成
  • 首字符必须是字母或下划线
  • 区分大小写(Age 和 age 是不同变量)
  • 不能是C语言关键字(如 int, if, for)

示例

#include<stdio.h>intmain(){intage=25;// 整数doubleheight=1.75;// 双精度浮点chargrade='A';// 字符(单引号)constdoublePI=3.14159;// 常量printf("年龄: %d\n",age);printf("身高: %.2f米\n",height);printf("成绩: %c\n",grade);return0;}
2. 操作符(Operators)

C语言操作符丰富,按功能分类如下(重点掌握前几类):

类别操作符示例说明与优先级(越高越先算)示例
算术操作符+ - * / %* / % 优先级高于 + -5 + 3 * 2 = 11(先算3*2)
关系操作符> >= < <= == !=返回1(真)或0(假)5 > 3 → 1
逻辑操作符&&(与) ||(或) !(非)! 最高,&& 高于 ||(5>3) && (2<4) → 1
赋值操作符= += -= *= /= %=右结合(从右往左)a += 5 等价于 a = a + 5
自增自减++ –前置++先用后加,后置先加后用int a=5; b=++a; → a=6,b=6
位操作符& || ^ ~ << >>按位操作(二进制)5 & 3 = 1(0101 & 0011)
条件(三目)?:条件?值1:值2max = a>b ? a : b;
逗号操作符,从左到右计算,取最后一个值int x=(1,2,3); // x=3

重点示例代码

#include<stdio.h>intmain(){inta=10,b=3;printf("a + b = %d\n",a+b);// 13printf("a / b = %d\n",a/b);// 3(整数除法,丢弃小数)printf("a %% b = %d\n",a%b);// 1(取余)a+=5;// a 变为 15printf("a = %d\n",a);intc=a++;// 后置:c=15, a=16intd=++a;// 前置:a=17, d=17intx=5,y=10;intmax=(x>y)?x:y;// 三目运算符printf("max = %d\n",max);// 10return0;}
3. 类型转换与常见陷阱
  • 隐式转换:小类型自动转大类型(int → double)
  • 显式转换(强制类型转换)
    doubled=3.14;inti=(int)d;// i=3,丢弃小数部分
  • 整数除法陷阱5 / 2 = 2(不是2.5)
  • 溢出:int超出范围会“绕回”(未定义行为,实际常溢出)
4. 实战建议与记忆口诀
  • 变量:先想“存什么数据”→选类型→起好名字→初始化(养成好习惯防垃圾值)
  • 操作符优先级口诀
    • 单目(! ++ --) > 算术(* / % > + -) > 关系 > 逻辑(&& > ||) > 赋值
    • 不确定就加括号!可读性最重要

一个小综合练习

intx=7;x+=x++*2;// 仔细算:先算 x++=7(后置),x变为8,再算7*2=14,最后x=8+14=22printf("%d\n",x);// 输出22

掌握变量和操作符,你就拥有了C语言的“基本运算能力”。接下来可以学习控制结构(if、for、while),让程序真正“动”起来!

如果想看更多示例、常见面试题(如操作符优先级陷阱),或者继续学“指针”部分,随时告诉我!🚀

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 7:48:23

GPU算力浪费严重?开源镜像优化显存利用率

GPU算力浪费严重&#xff1f;开源镜像优化显存利用率 Image-to-Video图像转视频生成器 二次构建开发by科哥 在AIGC&#xff08;人工智能生成内容&#xff09;领域&#xff0c;图像到视频&#xff08;Image-to-Video, I2V&#xff09;生成技术正迅速成为研究与应用的热点。然而&…

作者头像 李华
网站建设 2026/4/12 19:34:53

trae架构启示录:多模态AI应用落地的关键路径

trae架构启示录&#xff1a;多模态AI应用落地的关键路径 引言&#xff1a;从图像到视频的生成革命 在AIGC&#xff08;人工智能生成内容&#xff09;浪潮中&#xff0c;多模态生成技术正以前所未有的速度重塑内容创作边界。其中&#xff0c;Image-to-Video&#xff08;I2V&…

作者头像 李华
网站建设 2026/4/13 10:43:41

vue+nodejs产品售后服务跟踪系统的设计与实现6ffp13w7

文章目录摘要项目技术介绍开发工具和技术简介nodejs类核心代码部分展示结论源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;摘要 该系统基于Vue.js和Node.js技术栈&#xff0c;设计并实现了一套完整的售后服务跟踪管理平台&#xff0c;…

作者头像 李华
网站建设 2026/4/13 23:04:15

基于springboot的企业人才引进服务平台

摘 要 随着信息时代的来临&#xff0c;过去的传统管理方式缺点逐渐暴露&#xff0c;对过去的传统管理方式的缺点进行分析&#xff0c;采取计算机方式构建企业人才引进服务平台。本文通过课题背景、课题目的及意义相关技术&#xff0c;提出了一种企业信息、招聘信息、应聘信息等…

作者头像 李华
网站建设 2026/4/13 16:41:47

M2FP模型解析:从论文到可运行服务的快速路径

M2FP模型解析&#xff1a;从论文到可运行服务的快速路径 如果你是一名研究生&#xff0c;刚刚阅读完M2FP论文并希望复现实验结果&#xff0c;却被复杂的依赖关系和数据预处理步骤难住&#xff0c;那么这篇文章就是为你准备的。M2FP作为一款先进的人体解析模型&#xff0c;能够实…

作者头像 李华
网站建设 2026/4/15 10:54:20

基于Sambert-HifiGan的多模态语音合成系统设计

基于Sambert-HifiGan的多模态语音合成系统设计 &#x1f4cc; 项目背景与技术演进 随着人机交互需求的不断升级&#xff0c;语音合成&#xff08;Text-to-Speech, TTS&#xff09;技术已从单一语调朗读逐步迈向自然化、情感化、个性化的发展阶段。尤其在中文场景下&#xff0…

作者头像 李华