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 int 0~4亿多)
  • const:常量,值不可修改
  • volatile:告诉编译器值可能被外部改变(硬件相关)

命名规则

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

示例

#include <stdio.h>

int main() {
    int age = 25;                  // 整数
    double height = 1.75;          // 双精度浮点
    char grade = 'A';              // 字符(单引号)
    const double PI = 3.14159;     // 常量

    printf("年龄: %d\n", age);
    printf("身高: %.2f米\n", height);
    printf("成绩: %c\n", grade);
    return 0;
}

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>

int main() {
    int a = 10, b = 3;
    printf("a + b = %d\n", a + b);     // 13
    printf("a / b = %d\n", a / b);     // 3(整数除法,丢弃小数)
    printf("a %% b = %d\n", a % b);    // 1(取余)

    a += 5;                            // a 变为 15
    printf("a = %d\n", a);

    int c = a++;                       // 后置:c=15, a=16
    int d = ++a;                       // 前置:a=17, d=17

    int x = 5, y = 10;
    int max = (x > y) ? x : y;         // 三目运算符
    printf("max = %d\n", max);         // 10

    return 0;
}

3. 类型转换与常见陷阱

  • 隐式转换:小类型自动转大类型(int → double)
  • 显式转换(强制类型转换)
  double d = 3.14;
  int i = (int)d;  // i=3,丢弃小数部分
  • 整数除法陷阱5 / 2 = 2(不是2.5)
  • 溢出:int超出范围会“绕回”(未定义行为,实际常溢出)

4. 实战建议与记忆口诀

  • 变量:先想“存什么数据”→选类型→起好名字→初始化(养成好习惯防垃圾值)
  • 操作符优先级口诀
  • 单目(! ++ –) > 算术(* / % > + -) > 关系 > 逻辑(&& > ||) > 赋值
  • 不确定就加括号!可读性最重要

一个小综合练习

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

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

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

文章已创建 3707

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部