了解了C语言里面的类型和数据的定义后,我们接着就开始对数据进行操作了
在小学我们了解到 ”x=10“ 的含义,他代表变量x的值等于10,这个表达方式是一种状态的表达
现在我们也引用这个表达方式:
int x
x=10
他代表:设置x的值为10
在C语言里面”x=10“他是一个动作,一个赋值的操作,让变量x的值设置为10
我们可以这样操作:
x=1 // 让变量x等于1
x=2 // 让变量x变为2
x=3 // 让变量x变为3
x=10 // 让变量x变为10
y=1 // 让变量y等于1
y=2 // 让变量y变为2
y=3 // 让变量y变为3
y=10 // 让变量y变为10
C语言提供了算术操作符以实现基本的算术运算(假设变量 x 的值为 1,变量 y的值为2):
操作符 | 描述 | 描述 | 结果 |
---|---|---|---|
+ | 加法运算符,把两个操作数相加 | x + y | 3 |
- | 减法运算符,从第一个操作数中减去第二个操作数 | x - y | -1 |
* | 乘法运算符,把两个操作数相乘 | x * y | 2 |
/ | 除法运算符,分子除以分母 | x / y | 0 |
% | 取模运算符,整除后的余数 | x % y | 1 |
++ | 自增运算符,整数值加 1 | x++ | 2 |
– | 自减运算符,整数值减 1 | x– | 0 |
其中:
+ - * /:基本的算术运算
%:取模(即取余数)运算x%y可以等价为: x-(x/y)*y,使用符号%,可以简化程序的书写
++:自增运算x++,其实是为了简化x=x+1这样的操作,但是x++这个表达式的值与x=x+1的表达式值又不一样,所以在初期阶段,我们可以尽量不使用++,而直接使用x=x+1这样的操作
-- :自减运算,同自加运算类似,是为了简化x=x-1,初期阶段尽量不使用
C 语言提供了比较运算符以实现两个变量之间的大小比较(假设变量 x 的值为 1,变量 y 的值为 2):
操作符 | 描述 | 实例 | 结果 |
---|---|---|---|
== | 检查两个操作数的值是否相等,如果相等则为真(等同数学符号=) | x == y | 0:假 |
!= | 检查两个操作数的值是否相等,如果不相等则为真(等同数学符号≠) | x != y | 1:真 |
> | 检查左操作数的值是否大于右操作数的值,如果是则为真 | x > y | 0:假 |
< | 检查左操作数的值是否小于右操作数的值,如果是则为真 | x < y | 1:真 |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是则为真(等同数学符号≥) | x >= y | 0:假 |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是则为真(等同数学符号≤) | x <= y | 1:真 |
比较运算的结果用逻辑学里面的"真“和“假”来表达,是不是很奇怪为什么一个大小判断怎么就真假了呢?
其实比较运算可以看成是一个比较的假设判断,比如”==“运算,我们假设两个数相等,然后让计算机帮我们判断一下对不对,接着计算机吭呲吭呲地比较完告诉我们结果:我们的假设判断是对的还是错的,在英文里面他用True或者False来表示,在我们中文里面我门用了个”真假“来表示
至于为什么用真假,不用”对错“、”是否“或其他文字,这应该属于文字运用问题,我是码农,而且还是初级的,所以我不管
不管他用什么文字来描述判断的结果,在计算机里面最终的值都是0或者1
在编程语言里面,都是尽可能用一些基本符号组成相关的操作符,例如这里使用了= ! < > 四个基本符号,然后由这四个符号再组成这里的六个比较操作符
逻辑指的是思维的规律和规则(他有一门学科来解释),这里不进行深入探索,只介绍C语言里面用到的的三个逻辑(与或非)运算
逻辑运算用来判断一件事情是”对的“还是”错的“,或者说”成立“还是“不成立”
当两个条件同时满足的时候即为真(相当于“并且”的关系)
举个例子:小明他爸告诉小明,当他语文和数学考试都考100分的时候奖励个大鸡腿,这里就是逻辑与的关系,即
所以:
在描述条件满足与否的时候,我们经常会用“真”或“假”
一般的,我们会使用真值表来简化上面的描述(使用1表示真,使用0表示假):
真表示条件成立,假表示条件不成立
x | y | 结果 |
---|---|---|
真 | 真 | 真 |
真 | 假 | 假 |
假 | 真 | 假 |
假 | 假 | 假 |
当两个条件,满足任何一个的时候即为真(相当于“或者”的关系)
举个例子:小明他爸告诉小明,当他语文或数学考试考100分的时候奖励个大鸡腿,这里就是逻辑或的关系,即
所以:
x | y | x || y |
---|---|---|
真 | 真 | 真 |
真 | 假 | 真 |
假 | 真 | 真 |
假 | 假 | 假 |
逻辑非是对原有逻辑的一个取反操作,即如果原来状态时真,则新状态为假,如果原来状态为假,则新状态为真
举个例子:小明处于青春逆反期,总喜欢抬扛(杠精一个),他爸说要吃饭,他就不吃饭,他爸说不吃饭,他就要拼命吃
x | !x |
---|---|
真 | 假 |
假 | 真 |
C 语言提供了逻辑运算符以实现两个变量之间的逻辑判断(假设变量 x 的值为 1:真,变量 y 的值为 0:假)
运算符 | 描述 | 实例 | 结果 |
---|---|---|---|
&& | 称为逻辑与运算符。如果两个操作数都非零,则条件为真。 | x && y | 假 |
|| | 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 | x || y | 真 |
! | 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假 | ! x | 假 |
(1个)赋值操作符:=
最基本的操作符
(4个)基本的算术操作符:+、-、*、/
数学运算必须的加减乘除
(3个)扩展的算术操作符:%、++、–
简化的数学操作符号
(6个)比较操作符:==、!=、>、<、>=、<=
数值大小比较的判断符号
(3个)逻辑操作符:&&、||、!
逻辑判断操作的结果:真(True、1)或假(False、0)
对数据的操作在在计算机里面就是对数字的运算操作,所以操作符也经常称为运算符,没什么大的区别
代码演示(扫一眼即可,看不懂没关系)
#include "stdio.h"
void main()
{
int x;
int y;
printf("\n赋值操作符\n");
x=1; printf("x = %d\n",x);
x=2; printf("x = %d\n",x);
x=3; printf("x = %d\n",x);
x=10; printf("x = %d\n",x);
y=1; printf("y = %d\n",y);
y=2; printf("y = %d\n",y);
y=3; printf("y = %d\n",y);
y=10; printf("y = %d\n",y);
printf("\n算术操作符:");
x=1;
y=2;
printf("x=%d,y=%d\n",x,y);
printf("x+y = %d \n",x+y);
printf("x-y = %d \n",x-y);
printf("x*y = %d \n",x*y);
printf("x/y = %d \n",x/y);
printf("x%%y = %d \n",x%y);
printf("x-(x/y)*y=%d \n",x-(x/y)*y);
printf("\n");
printf("x = %d \n",x);
printf("x++ = %d \n",x++);
printf("x = %d \n",x);
printf("x-- = %d \n",x--);
printf("x = %d \n",x);
printf("\n比较操作符:");
printf("x=%d,y=%d\n",x,y);
printf("x==y = %d \n",x==y);
printf("x!=y = %d \n",x!=y);
printf("x>y = %d \n",x>y);
printf("x=y = %d \n",x>=y);
printf("x<=y = %d \n",x<=y);
x=1;
y=0;
printf("\n逻辑操作符:");
printf("x=%d,y=%d\n",x,y);
printf("x&&y = %d \n",x&&y);
printf("x||y = %d \n",x||y);
printf("!x = %d \n",!x);
}