C语言 运算符 判断语句 循环语句 作用域
C语言 运算符
在我们的C语言中包含了很多的运算符,其中含有:
- 算数运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
- 杂项运算符
算数运算符
该运算符就是用来实现的是我们的对数字类型的数据进行运算的一种操作符
运算符 描述 实例+ + 将两个运算单元实现相加的操作 a + b - 将两个运算单元实现相减的操作 a - b * 将两个运算单元实现相乘的操作 a * b / 将两个运算单元实现相除的操作 a / b % 将两个运算单元实现求模的操作 a % b ++ 将一个运算单元实现自增操作 a++ ++a -- 将一个运算单元实现自减操作 b-- --b 这里我们需要注意的就是自增(减)是需要分为我们的前后的
前自增(减) : 就是实现的是将变量先实现 +(-)1 的操作,然后自身再实现引用
后自增(减) :就是实现的是将变量先引用,然后实现自身+(-)1 的操作的
#include <stdio.h> int main() { int c; int a = 10; c = a++; printf("先赋值后运算:\n"); printf("Line 1 - c 的值是 %d\n", c ); printf("Line 2 - a 的值是 %d\n", a ); a = 10; c = a--; printf("Line 3 - c 的值是 %d\n", c ); printf("Line 4 - a 的值是 %d\n", a ); printf("先运算后赋值:\n"); a = 10; c = ++a; printf("Line 5 - c 的值是 %d\n", c ); printf("Line 6 - a 的值是 %d\n", a ); a = 10; c = --a; printf("Line 7 - c 的值是 %d\n", c ); printf("Line 8 - a 的值是 %d\n", a ); }
关系运算符
关系运算符常用于我们的关系判断中,最终实现比较的时候,实现返回的是我们的 bool 值,用于分支语句或者循环语句中
运算符 描述 实例 == 检查两个操作数是否相等 a == b != 检查两个操作数是否不相等 a != b 检查两个操作数的大小关系 a > b < 检查两个操作数的大小关系 a < b >= 检查两个操作数的大小关系 a >= b <= 检查两个操作数的大小关系 a <= b #include <stdio.h> int main() { int a = 21; int b = 10; int c ; if( a == b ) { printf("Line 1 - a 等于 b\n" ); } else { printf("Line 1 - a 不等于 b\n" ); } if ( a < b ) { printf("Line 2 - a 小于 b\n" ); } else { printf("Line 2 - a 不小于 b\n" ); } if ( a > b ) { printf("Line 3 - a 大于 b\n" ); } else { printf("Line 3 - a 不大于 b\n" ); } /* 改变 a 和 b 的值 */ a = 5; b = 20; if ( a <= b ) { printf("Line 4 - a 小于或等于 b\n" ); } if ( b >= a ) { printf("Line 5 - b 大于或等于 a\n" ); } }
逻辑运算符
运算符 描述 实例 && 逻辑与 a && b 逻辑或 a b ! 逻辑非 !a 逻辑与: 就是实现的是多个判断条件之间,全部为 true ,最终才为真 true
逻辑或:就是实现的是多个判断条件之间,一个是对的那么就是为真 true
逻辑非: 就是实现的是判断添加为真那个就取假,就是真假亦之
#include <stdio.h> int main() { int a = 5; int b = 20; int c ; if ( a && b ) { printf("Line 1 - 条件为真\n" ); } if ( a || b ) { printf("Line 2 - 条件为真\n" ); } /* 改变 a 和 b 的值 */ a = 0; b = 10; if ( a && b ) { printf("Line 3 - 条件为真\n" ); } else { printf("Line 3 - 条件为假\n" ); } if ( !(a && b) ) { printf("Line 4 - 条件为真\n" ); } }
赋值运算符
运算符 描述 实例 = 简单的赋值操作 a = 10 += 加且赋值操作 a += 10 等价于 a = a + 10 -= 减且赋值操作 a -= 10 等价于 a = a - 10 *= 乘且赋值运算符 a *= 10 等价于 a = a * 10 /+ 除且赋值运算符 a /= 10 等价于 a = a / 10 %= 求模且赋值运算符 a %= 10 等价于 a = a % 10 位运算符 杂项运算符 ↦ sizeof & 三元 自行了解
C语言 判断语句
首先我们需要知道的是每一种编程语言中都是具有这个判断语句的(分支语句)
判断语句中的代码块需要满足特定的条件才可以运行
C 语言或者其他编程语言中,把任意的非零和非空的值假定为的 true , 把 零或者null 假定为 false
语句 描述 if 语句 可以根据条件来决定代码块是否运行 if...else...语句 条件为真就运行 if 的代码块,否者就是运行 else 的代码块 嵌套 if 语句 就是进入层层的判断是否运行代码块 switch 语句 常用于对一个变量的值进行比较 嵌套 switch 语句 进行多次判断一个变量的值 三元运算符: Exp1 ? Exp2 : Exp3;
意思就是: 如果满足 Exp1,就直接运行Exp2, 否则就是运行 Exp3
三元运算符的使用是可以简化我们的很多代码的书写的
#include<stdio.h> int main() { int num; printf("输入一个数字 : "); scanf("%d",&num); (num%2==0)?printf("偶数"):printf("奇数"); }
C语言 循环语句
使用循环语句,就是为了实现循环运行一个代码块,使其完成相同的功能代码体
每种编程语言中都是含有 循环语句,而且都是大致相同的
循环类型
循环类型 描述 while 循环 满足条件就直接进入循环 for 循环 多次执行一个语句序列,简化管理循环变量的代码 嵌套循环 您可以在 while、for 或 do..while 循环内使用一个或多个循环
循环控制语句
控制语句 描述 break 终止循环或 switch 语句,程序流将继续执行紧接着循环或 switch 的下一条语句。 continue 告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。 goto 将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。
无限循环
对于 while 循环而言,实现无限循环的话,使用的就是我们的 while(true)
对于 for 循环而言,实现无线循环即是什么判断条件都不写 for( ; ; )
C语言 函数
函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。
您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。
函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。
声明函数
return_type function_name (parameter list);return_type 就是指的是函数的返回值类型
function_name 就是值得是函数的函数名,后面需要使用他来实现调用函数
parameter 就是值得是函数的参数列表,这个参数就是我们的形参,在传递参数的过程中实际上就是赋值的操作
函数参数的列表的话,没有参数的时候,可以使用 void 代替
定义函数
return_type function_name (parameter list) { exe code body }实现定义函数这一步就是为了完成内部的函数功能体的书写以及实现
/* 函数返回两个数中较大的那个数 */ int max(int num1, int num2) { /* 局部变量声明 */ int result; if (num1 > num2) { result = num1; } else { result = num2; } return result; }
函数参数
调用类型 描述 传值调用 该方法把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数不会影响实际参数。 引用调用 通过指针传递方式,形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作。 如果是传值的调用的话,那么最终的实现的就是产生新的内存地址,形参和实参的内存地址不同,所以说两个互不影响
引用调用: 进行赋值的时候,就是进行赋值的是内存地址,这个形参和实参实现访问就是同一个变量
在 C / C++ 中,变量存储的是数据,但是通过某种特定的语法,是可以实现直接赋值内存地址的,这个就是后面的指针
C语言 作用域
在所有的编程语言中都是含有这个作用域问题的
全局作用域 | 局部作用域
在全局作用域中定义的变量在任何地方都是可以实现访问的
在局部作用域中实现定义的变量只可以在本身的所在的作用域中才可以实现访问以及使用