操作符
(1)在聊操作符前,我们先了解一下单目操作符和双目操作符,所谓单目操作符只需要一个操作数即可,而双目操作符则需要两个操作数。
(2)算数操作符:+、-、*、/、%
#include<stdio.h>
int main()
{
int a = 9 / 2;
int b = 9 % 2;
printf("%d\n",a); // 得4,当除号两边都是整数时执行整数除法,余数舍去
printf("%d\n",b); // %-->取模,得1,得到的是余数,取模操作的两个操作符只能是整数
float c = 9.0 / 2;
printf("%0.1f\n",c); // 得4.5 当除号两边有一个浮点数就执行浮点数的除法,0.1表示打印出来的浮点数保留小数点后一位
return 0;
}
(3)赋值操作符:=、+=、-=、*=、/=
#include<stdio.h>
int main()
{
int a = 0; //初始化
a = 50; //赋值
printf("%d\n",a); // 得50
int b = 10;
b += 3; //也就是 b = b + 3 的另一种语法格式
printf("%d\n",b); // 得13
return 0;
}
注:-=,*=,/= 的用法和 += 的用法相同。
(4)单目操作符
! | 逻辑反操作 |
— | 负值 |
+ | 正直 |
* | 间接访问操作符(解引用操作符) |
sizeof | 操作数的类型长度(以字节为单位) |
—— | 前置,后置 |
++ | 前置,后置 |
(类型) | 强制类型转换 |
注:c语言中0表示假,非0表示真。
例子:
#include<stdio.h>
int main()
{
//!
int ain = 2;
if(!ain)
{
printf("nihaoya"); //结果为什么也不打印,因为为假
}
//+
int b = -10;
int c = -a;
printf("%d\n",c) //得10
//sizeof
int min[10] = { 2 };
printf("%d\n",sizeof(min)); // 得40,计算的是整个数组的大小,sizeof单位是字节
printf("%d\n",sizeof(min[1])); //得4,计算的是数组中一个元素的大小
printf("%d\n",sizeof(min)/sizeof(min[1])); //得10,拿整个数组的长度除于一个元素的长度
//++,--
int d = 5;
int e = d++;
printf("%d\n",e); // 得5
printf("%d\n",d); // 得6 //后置是先使用,后++
int g = 5;
int f = ++g;
printf("%d\n",g); //得6 //前置是先++,后使用
printf("%d\n",d); //得6 //--的使用方法与++一致
//(类型)
//int h = 3.14;
//printf("%d\n",h) //这里直接打印会出错,3.14为浮点类型,编译器默认理解为double类型
int h = (int)3.14; //( )括号里的是想要更改的类型
printf("%d\n",h) //这样就将double类型的3.14强型转化成了int类型,得3
return 0;
}
(5)关系操作符
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
!= | 用于测试“不等于” |
== | 用于测试“等于” |
例子
#include<stdio.h>
int main()
{
int a = 0;
scanf("%d",&a);
if(a == 2) //如果输入的数字为2,则输入的为真,否则为假
printf("输入正确");
else
printf("输入错误");
return 0;
}
(6)逻辑操作符
&& | 逻辑与 |
|| | 逻辑或 |
#include<stdio.h>
int main()
{
int a = 10;
int b = 5;
int c = 0;
if(a && b)
printf("星期一");
//if(a && c)
printf("星期二");
//if(a || b)
printf("星期三");
//if(a || c)
printf("星期四");
return 0;
} //挨个if打印后会得到,星期一,星期三,星期四都可打印,星期二则无法打印,也就是说逻辑与必须要两个都为真才可以,而逻辑或只要有一个为真即可
(7)条件操作符(三目操作符):exp1?exp2:exp3
exp1?exp2:exp3 的意思为当exp1表达式为真时输出exp2的结果,当exp1表达式为假时输出exp3的结果。
#include<stdio.h>
int main()
{
int a = 10;
int b = 30;
int r = a > b ? a : b;
printf("%d\n",r);
return 0;
} //输出结果为30
(8)逗号表达式:exp1,exp2,exp3……expn
逗号表达式就是逗号隔开的一串表达式,特点:从左向右依次计算,整个表达式的结果是最后一个表达式的结果。
#include<stdio.h>
int main()
{
int a = 10;
int b = 30;
int c = 0;
int d = (c = a + b, a = b - a, c + a);
printf("%d\n",d);
return 0;
} //结果为60
(9)下标引用操作符 [ ],函数调用操作符():这两个操作符经常用在集合调用更改元素和自创建函数的调用中。