1、运算符:
1》赋值运算:= 左值和右值类型要对应,将数据存放到某个内存空间中的过程就是赋值,例如:
int a,b,c;
a = 100; //将100存放到a的空间中
b = a; //将a中的数据存放到b的空间中
c = a + b; //将a+b的运算结果存放到c的空间中
---》左值:
1)在赋值号的左边,
2)表示变量所对应的内存空间,
3)必须是变量
---》右值:
1)在赋值号的右边,
2)表示数值或者地址
3)变量,常量,表达式,指针(地址)
2》算术运算:+ - * / % ++ --
不同类型数据运算时,运算结果与类型较大的操作数相同
取余运算:两边的操作数必须是整型的
++/-- :运算时,如果操作数在前,则先运算后自加或自减,反之,先自加或自减然后运算
3》关系运算:> >= < <= == !=
关系运算结果的类型:布尔型(真/假)
4》逻辑运算:! && ||
#include <stdio.h>
#include <stdbool.h>
int main(void)
{
int a,b;
bool c;
a = 100;
b = 200;
printf("a = %d\n",a);
printf("b = %d\n",b);
//c = !a; //a非零为真,逻辑取反变假
//c = a && b;
//printf("c = %hhd\n",c);
c = a || (b = 123); //当a为真时,表达式b = 123不会执行
printf("a = %d\n",a);
printf("b = %d\n",b);
printf("c = %hhd\n",c);
return 0;
}
5》位运算:~ & | ^ << >>
#include <stdio.h>
int main(void)
{
char a,b,c;
a = 5;
b = 3;
c = ~a;
printf("c = %hhd\n",c);
c = a & b;
printf("c = %hhd\n",c);
c = a | b;
printf("c = %hhd\n",c);
c = a ^ b;
printf("c = %hhd\n",c);
c = a<<2;
printf("c = %hhd\n",c);
c = a>>2;
printf("c = %hhd\n",c);
c = -a>>2;
printf("c = %hhd\n",c);
return 0;
}
6》复合运算:+= *= ^= ~=等
当变量同时出现在赋值号的左右两边时,可以使用复合运算符
#include <stdio.h>
int main(void)
{
int a,b,c;
a = 100;
b = 200;
//a = a + b;
a += b;
return 0;
}
7》条件运算: ? :
表达式1 ?表达式2 : 表达式3 = 表达式1为真,则取表达式2的值,否则取表达式3的值
int a = 3,b = 5,c;
c = a<b?a:b;
8》逗号运算: ,
c = (a=123,b=456,a+b);
printf("c = %d\n",c);
9》sizeof:用于计算变量或者类型的长度(字节数)
----》计算类型的长度:
#include <stdio.h>
int main(void)
{
int len,a = 100;
len = sizeof(int);
printf("len = %d\n",len);
len = sizeof(long);
printf("len = %d\n",len);
len = sizeof(double);
printf("len = %d\n",len);
return 0;
}
--->计算数据的长度:该数据占用内存的字节数
len = sizeof(a);
printf("len = %d\n",len);
len = sizeof ("hello");
printf("len = %d\n",len);
2、表达式
只要是表达式,它都有运算结果,这个结果要么是数值,要么是逻辑值(真假值)
3、语句
是c程序执行的最小单位,一般以;结尾