ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

【C语言基础】常量、选择结构与运算符全解析

【C语言基础】常量、选择结构与运算符全解析 前言C语言的选择结构if-else和常量是编程中最基础也最重要的概念之一。本文将结合代码示例带你系统掌握C语言中的常量类型、选择结构、关系与逻辑运算符并通过多个实战案例巩固理解。一、常量C语言中的常量有多种定义方式每种方式各有特点1. 字面常量直接写在代码中的数值或字符无需声明。// 整数字面常量 12, 23, 34 // 字符字面常量单引号 A, b, 9 // 字符串字面常量双引号 hello world2. const 修饰的常量将变量声明为只读后续不能再赋值。const int a 10; // a 20; // 编译错误const 变量不可修改3. #define 定义的标识符常量宏常量预处理阶段进行文本替换不占内存空间。#define MAX 100 // 使用 MAX 的地方会被替换为 1004. 枚举常量批量定义一组命名常量默认从 0 开始递增。enum color { red, // 0 blue, // 1 green // 2 };注意事项使用char类型时单引号引单个字符双引号引字符串。如果在算术运算中两边的数据类型不同则运算结果的数据类型与操作数中具有较大范围的操作数相同。二、强制类型转换当需要将一种数据类型转换为另一种时可以使用强制类型转换。格式目标变量 (目标数据类型)(表达式)int c; c (int)(12.3 * 12 40); // 将浮点运算结果强制转换为整型三、基础运算示例功能基础加法示例演示变量定义、赋值和基本运算。#include stdio.h int main() { int a, b; a 5; b 6; int c; c a b; // 给 c 赋值为 a b 给 c 赋值 5 6 printf(hello world!\n %d %d %d, a, b, c); return 0; }功能输入输出加法示例演示scanf读取用户输入。#include stdio.h int main() { int a, b; a 5; // 赋值 b 6; printf(请输入两个数); scanf(%d %d, a, b); // 读取整型数字并将值存储到变量 a 和 b 的地址中 int c; c a b; printf(结果是%d %d %d, a, b, c); return 0; }注意判断结果返回非 0 为真返回 0 为假。四、选择结构之 if 语句1. 单分支 if当表达式为真时执行语句块否则跳过。当语句块只有一句时可以省略{}。if (表达式) { 语句块; } // 或者单行时可省略大括号 if (表达式) 语句块;2. 双分支 if-else表达式为真执行语句块1否则执行语句块2。if (表达式) { 语句块1; } else { 语句块2; }3. 多分支 if-else if-else从上往下依次判断一旦匹配成功就执行对应语句块并跳过后续所有分支。if (表达式1) { 语句块1; } else if (表达式2) { 语句块2; } // ... else if (表达式n) { 语句块n; } else { 语句块n1; // 以上条件都不满足时执行 }五、关系运算符运算符含义等于不等于大于等于小于等于小于大于六、逻辑运算符运算符含义说明逻辑与两边都为非0结果才为1短路特性左边为0时右边不再计算||逻辑或任意一边为非0结果就为1短路特性左边为1时右边不再计算!逻辑非操作数为非0结果为0操作数为0结果为1七、实战代码示例示例1if-else 条件判断功能演示基本的条件分支结构比较两个数的大小。#include stdio.h int main() { int a, b; a 5; b 6; printf(请输入两个数); scanf(%d %d, a, b); if (a b) // if 语句从上往下执行当遇到符合条件的语句将进入此语句并且跳过之后的所有 else if 和 else 语句 { printf(大的数是%d, a); } else { printf(大的数是%d, b); } return 0; }示例2使用临时变量存储最大值功能演示使用临时变量max来存储比较结果。#include stdio.h int main() { int a, b; a 5; // 赋值 b 6; printf(请输入两个数); scanf(%d %d, a, b); int max a; // 提前赋值方便作比较 if (b max) // 如果 b 比原先的 max 大那 b 就是新的 max { max b; } printf(大的数是%d, max); return 0; }示例3数据类型演示功能展示 C 语言中不同数据类型的定义和使用。#include stdio.h int main() { int a; a 2; printf(%d \n, a); char b; // char 类型本质属于整型大家庭先有数字再从 ASCII 表中查找相应的字符 b 2; // char 类型赋值 (字符不是数字) 要打 符号否则打印数字 printf(%c \n, b); // 打印字符 float c; // 定义浮点型参数 c 3.14f; // f 用于强调是 float 类型以免 c 转换到 double 类型float 与 double 区别在于 double 的范围更大 printf(%f \n, c); double e; e 3.14; printf(%lf \n, e); // double 相当于 long float long long int num; // 定义长整型与 int 相比其范围更大 num 2025233503401; printf(%lld \n, num); // int 打印用 %dlong long int 打印用 %lld return 0; }示例4字符与 ASCII 码功能演示字符和数字之间的转换关系。#include stdio.h int main() { char i; i 65; printf(字母是%c 数字是%d \n, i, i); return 0; }示例5三重判断if-else if-else功能演示多分支结构比较两个数的大小关系。#include stdio.h int main() { int i 3, j 4; if (i j) // 三重判断从上往下依次判断 { printf(大的数是 %d, i); } else if (j i) { printf(大的数是 %d, j); } else { printf(两个数相等); } return 0; }示例6三个数找最大值方法1临时变量逐步比较功能使用临时变量max逐步与每个数比较找出最大值。#include stdio.h int main() { int a, b, c; scanf(%d %d %d, a, b, c); int max a; if (a max) { max a; } if (b max) { max b; } if (c max) { max c; } printf(最大者是%d, max); return 0; }示例7三个数找最大值方法2逻辑运算符直接比较功能使用逻辑运算符直接判断每个数是否为最大值。#include stdio.h int main() { int a, b, c; scanf(%d %d %d, a, b, c); if (a b a c) // 操作符要求两边同时为真才表示真否则为假从左往右依次判断一旦左边判断错误右边将不再进行判断 { printf(最大者是%d, a); } else if (b a b c) { printf(最大者是%d, b); } else if (c a c b) { printf(最大者是%d, c); } return 0; }示例8大小写转换功能演示利用 ASCII 码差值实现字符大小写互转。#include stdio.h int main() { char i; scanf(%c, i); if (i a i z) { // 小写转大写大写 ASCII 码表 (65~90)小写 ASCII 码表 (97~122) printf(%c, i - (a - A)); } else if (i A i Z) { // 大写转小写 printf(%c, i (a - A)); } else { printf(%c, i); } return 0; }总结本文系统梳理了C语言中的核心基础知识点常量字面常量、const常量、宏常量、枚举常量四种方式各有适用场景。选择结构if、if-else、if-else if-else 三种分支形式灵活应对不同判断需求。运算符关系运算符返回 0/1逻辑运算符具备短路特性理解它们对写出高效代码至关重要。ASCII 码字符本质是整数掌握 ASCII 码规律可以轻松实现大小写转换等操作。学习建议多动手敲代码尝试修改示例中的条件和数值观察输出变化加深理解
返回列表