初识C语言(三)

C语言中的运算符

C语言中的运算就是对数据进行操作、处理的过程。运算符就是指定该运算的处理方式。

C语言中的运算符:

  • 算术运算符

  • 赋值运算符

  • 关系运算符

  • 逻辑运算符

  • 三目运算符

算数运算符

C语言中的算数运算符包括:

初识C语言(三)

  • 在除法运算中

如果相除的两个数都是整数的话,则结果也为整数,小数部分省略,如8/3 = 2;而两数中有一个为小数,结果则为小数,如:9.0/2 = 4.500000。

  • 在取余运算中

该运算只适合用两个整数进行取余运算,如:10%3 = 1;而10.0%3则是错误的;运算后的符号取决于被模数的符号,如(-10)%3 = -1;而10%(-3) = 1。

注释:C语言中没有乘方这个运算符,也不能用×,÷等算术符号。取余运算和乘法运算和除法运算是同级运算。

#include <stdio.h>
int main()
{
int x,y;
x = 10;
y = -3;
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);
return 0;
}
输出结果;
x+y=7
x-y=13
x*y=-30
x/y=-3
x%y=1

注释:%符号在C语言里面有特殊用途,和其它的符号组合表示特定的意义。比如%d表示整数,%c表示字符,而%%表示%本身。

自增和自减运算符

自增运算符为“++”,其功能是使变量的值自增1;自减运算符为“--”,其功能是使变量值自减1。它们经常使用在循环中。自增自减运算符有以下几种形式:

初识C语言(三)

注释:无论是a++还是++a都等同于a=a+1,在表达式执行完毕后a的值都自增了1,无论是a--还是--a都等同于a=a-1,在表达式执行完毕后a的值都自减少1。

实例:

#include <stdio.h>
int main()
{
int a=100;
printf("%d\n", a++);
printf("%d\n", ++a);
printf("%d\n", --a);
printf("%d\n", a--);
printf("%d\n", a+1);
printf("%d\n",a);
}

输出结果:

初识C语言(三)

#include <stdio.h>
int main()
{
int x = 0;
printf("x=%d\n",x++);
printf("x=%d\n",++x);
return 0;
}

输出结果:

初识C语言(三)

注释:x++ 是取值后再运算,所以打印出来的结果是运算前的数值,++x是运算后再取值,所以打印出来的运算后的结果。

赋值运算符

赋值运算符为“=”

#include <stdio.h>
int main()
{
int a,b,c;
a = 10; //给a赋值为10
b = 7; //给b赋值为
c = a+b; //计算a+b的值赋值给c
}

C语言中赋值运算符分为简单赋值运算符和复合赋值运算符,简单赋值运算符为“=”,复合赋值运算符就是在简单赋值符“=”之前加上其它运算符构成,例如+=、-=、*=、/=、%=。

实例:

int a = 3;
a += 5;

分析:定义整型变量a并赋值为3,a += 5;这个算式就等价于a = a+5; 将变量a和5相加之后再赋值给a。

注意:复合运算符中运算符和等号之间是不存在空格的。

关系运算符

下面是C语言中的关系运算符:

初识C语言(三)

关系表达式的值是“真”和“假”,在C程序用整数1和0表示。如:

int a = 10;
int b = 4;
printf("%d\n", a>b); //10>4,为真,输出结果为1
printf("%d\n", a==b); //10==4,为假,输出0// z是否小于等于x

输出结果:

初识C语言(三)

注释:>=,<=,==,!=这种符号之间不能存在空格。

实例:

#include <stdio.h>
int main()
{
int x=5;
int y=5;
int z=10;
printf("x是否大于y:%d\n",x>y); //x是否大于y
printf("y是否大于等于x:%d\n",y>x); //y是否大于等于x
printf("y是否小于z:%d\n",y<z); //y是否小于z
printf("z是否小于等于x:%d\n",z<x); //z是否小于等于x
printf("z是否等于x+y:%d\n",z!=x+y); //z是否等于x+y
return 0;
} 输出结果:
x是否大于y:0
y是否大于等于x:0
y是否小于z:1
z是否小于等于x:0
z是否等于x+y:0

逻辑运算符

C语言中的逻辑运算符:

初识C语言(三)

逻辑运算的值也是有两种分别为“真”和“假”,C语言中用整型的1和0来表示。其求值规则如下:

  1. 与运算(&&)

参与运算的两个变量都为真时,结果才为真,否则为假。例如:5>=5 && 7>5 ,运算结果为真;

  1. 或运算(||)

参与运算的两个变量只要有一个为真,结果就为真。 两个量都为假时,结果为假。例如:5>=5||5>8,运算结果为真;

  1. 非运算(!)

参与运算的变量为真时,结果为假;参与运算量为假时,结果为真。例如:!(5>8),运算结果为真。

实例:

#include <stdio.h>
int main()
{
int height = 175; //身高为175cm
double money = 1500000; //银行存款为150万
printf("是否符合条件:%d\n",height>=180&&money>=1000000); //填写算式
return 0;
} 输出结果:
是否符合条件:0

三目运算符

C语言中的三目运算符:“?:”,其格式为:

表达式1 ? 表达式2 : 表达式3;

执行过程是:

先判断表达式1的值是否为真,如果是真的话执行表达式2;如果是假的话执行表达式3。

实例:

#include <stdio.h>
int main()
{
//定义我们能接受该商品的心里价位
int money = 100;
//定义该商品的单价
int price = 120;
//输出y我们就买,输出n我们就不买
printf("%c\n", price<=money ? 'y' : 'n');
return 0;
}

输出结果:

初识C语言(三)

运算符大比拼之优先级比较

运算符号的顺序:

初识C语言(三)

优先级别为1的优先级最高,优先级别为10的优先级别最低。

实例:

int a = 11;
int b = (a>3)*a-(a+3)%3;
printf("b=%d\n", b);

解析:C语言中运算符中最高等级的为(),因此执行过程为:

1、先计算a>3和a+3的结果,计算后算式为1*a-14%3;

2、再计算1*a和14%3的结果,计算后算式为11-2;

3、最后算出结果为9。

上一篇:PHP 观察者模式和php实现 Observer Pattern


下一篇:awk参数详解