1.C语言中,运算符的作用是指定运算的处理方式,具体有以下五种:
算术运算符、赋值运算符、关系运算符、逻辑运算符、 三目运算符等5种。
2.算术运算符:包含+、-、*(乘法运算符)、/、%(求余运算符、也称模运算符)、++(自增运算符)、--(自减运算符)
1)除法运算中注意:如果相除的两个数都是整数的话,则结果也为整数,小数部分省略,如9/2 =4;而两数中有一个为小数,结果则为小数,如:9.0/2 = 4.500000。
2)取余运算中注意:该运算只适合用两个整数进行取余运算,如:10%3 = 1;而10.0%3则是错误的;运算后的符号取决于被模数的符号,如(-10)%3 = -1;而10%(-3) = 1。
算法例子:
#include <stdio.h>
int main()
{
int x,y;
x = 10;
y = -3;
printf("x+y=%d\n", 7 );
printf("x-y=%d\n", 13 );
printf("x*y=%d\n", -30 );
printf("x/y=%d\n", -3 );
printf("x%y=%d\n", 1 );
return 0;
}
输出结果:x+y=7 x-y=13 x*y=-30 x/y=-3 x%y=1
自增与自减运算符:自增运算符为“++”,其功能是使变量的值自增1;自减运算符为“--”,其功能是使变量值自减1。它们经常使用在循环中。自增自减运算符有以下两种形式:
1.++(或--)变量:先运算再取值,即变量先自增(或自减)1后再取值
2.变量++(或--):先取值再运算,即变量先取值后再自增(或自减)1
注意:无论是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);
return 0;
}
输出结果为:100、102、101、101、101、100
3.赋值运算符:分简单赋值运算符、复合赋值运算符两种
简单运算符就是“=”
复合运算符:复合赋值运算符就是在简单赋值符“=”之前加上其它运算符构成,例如+=、-=、*=、/=、%=。例子:a+=5,意思是a=a+5,即将a与5相加后再赋值给a。
注:复合运算符中运算符和等号间没有空格
例子:
#include <stdio.h>
int main()
{
int x = 10;
int y = 10;
x = x*2;//使用简单赋值语句实现x乘以2。
y *= 2;//使用复合赋值语句实现y乘以2。
printf("x=%d\n", x);
printf("y=%d\n", y);
return 0;
}
输出结果为x=20,y=20
4.关系运算符:含>、>=、<、<=、==(等于)、!=(不等于)
关系表达式的值是“真”还是“假”,在C程序用整数1和0表示。如:
int a = 10;
int b = 4;
printf("%d\n",a>b);//输出1
printf("%d\n",a==b);//输出0
输出结果:1,0
注意:>=,<=,==,!=这种符号之间不能存在空格。
例子:
#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:1 y是否小于z:1 z是否小于等于x:0 z是否等于x+y:1
5.逻辑运算符:计算机看不懂7<x<100,要以逻辑运算符来表示,包含&&(与)、||(或)、!(非),相当于高中数学的且、或、非。
所以7<x<100就可以写成x>7&&x<100
1) 与运算(&&):参与运算的两个变量都为真时,结果才为真,否则为假。例如:5>=5 && 7>5 ,运算结果为真;
2) 或运算(||):参与运算的两个变量只要有一个为真,结果就为真。 两个量都为假时,结果为假。例如:5>=5||5>8,运算结果为真;
3) 非运算(!):参与运算的变量为真时,结果为假;参与运算量为假时,结果为真。例如:!(5>8),运算结果为真。
例子:
#include <stdio.h>
int main()
{
int height =175; //身高为175cm
int money = 1500000; //银行存款为150万
printf("是否符合条件:%d\n",height>=180&&money>=1000000); //填写算式
return 0;
}
输出结果:是否符合条件:0
6.三目运算符(三元运算符):我们购物的时候经常会说如果这个物品大于多少钱就不买了,条件就是大于多少钱,结果就是不买了。这用C语言表示出来就需要用到三目运算符(?:)。
其格式为:表达式1?表达式2:表达式3;
执行过程:先判断表达式1的值是否为真,如果是真的话执行表达式2;如果是假的话执行表达式3。
例子:
#include <stdio.h>
int main()
{
int money = 12 ; //定义兜里的钱
double cost = 11.5 ; //定义打车回家的费用
printf("能不能打车回家呢:");
printf("%c\n",money>=cost?'y':'n');//字符要用''包起来
return 0;
}
输出结果:y
7.运算符间的优先级:如图!
标号代表优先级1最高10最低。
总结:与小学运算法则基本相同。
热门评论