news 2026/7/2 3:00:58

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/7/1 9:28:54

从普通TTS迁移到Sambert-HifiGan:完整迁移指南

从普通TTS迁移到Sambert-HifiGan&#xff1a;完整迁移指南 &#x1f3af; 为什么需要迁移&#xff1f;普通TTS的局限与Sambert-HifiGan的优势 在中文语音合成&#xff08;Text-to-Speech, TTS&#xff09;领域&#xff0c;传统的TTS系统如TacotronGriffin-Lim、FastSpeech等虽然…

作者头像 李华
网站建设 2026/7/1 15:37:33

EF Core自定义映射PostgreSQL原生函数

背景 在 ASP.NET Core 应用开发中&#xff0c;使用 PostgreSQL的jsonb类型存储多语言数据是一种常见的方案。这种方式相比传统的多列存储或独立翻译表&#xff0c;在模式定义上更加灵活。 例如&#xff0c;对于一个包含多语言简介的“艺术家”实体&#xff0c;我们通常如下定…

作者头像 李华
网站建设 2026/7/1 17:02:59

【ITK手册007】itk::Image 内存布局与几何变换深度指南

【ITK手册007】itk::Image 内存布局与几何变换深度指南1. 概述 在 Insight Toolkit (ITK) 中&#xff0c;itk::Image 是处理 N 维医学图像的核心类。它不仅是一个存储像素值的容器&#xff0c;更封装了医学影像特有的物理空间几何属性&#xff08;如 Origin, Spacing, Directio…

作者头像 李华
网站建设 2026/7/1 9:28:54

vue+nodejs企业合同管理系统设计与实现 5c062cu7

文章目录系统架构设计功能模块划分技术实现要点系统特色功能安全与性能优化项目技术介绍开发工具和技术简介nodejs类核心代码部分展示结论源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;系统架构设计 该系统采用前后端分离架构&#x…

作者头像 李华
网站建设 2026/6/21 22:17:53

vue+nodejs甜点蛋糕商城系统 团子烘焙销售服务系统_477f72l8

文章目录系统概述核心功能模块技术亮点应用价值项目技术介绍开发工具和技术简介nodejs类核心代码部分展示结论源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;系统概述 VueNode.js甜点蛋糕商城系统&#xff08;团子烘焙销售服务系统&am…

作者头像 李华