一、赋值运算符
所谓赋值,就是给一个“东西”数据。这个“东西”和数据就是我们上篇文章讲的变量,
运算符 | 描述 | 示例 |
= | 简单的赋值运算符 | C = A 就是A的值赋给 C |
+= | 加且赋值运算符 | C += A 就是 C = C + A |
-= | 减且赋值运算符 | C -= A 就是 C = C - A |
*= | 乘且赋值运算符 | C *= A 就是 C = C * A |
/= | 除且赋值运算符 | C /= A 就是 C = C / A |
%= | 求余数且赋值运算符 | C %= A 就是 C = C % A |
注意:赋值运算符支持的是C语言的基本数据类型,包括char、int和double,字符串(字符数组)不能使用赋值运算符。
示例:
#include <stdio.h>
int main()
{
int A,C;
scanf("%d",&A);
C=A;
printf("C=%d\n",C);
C+=A;
printf("C=%d",C);
return 0;
}
二、算术运算符
顾名思义,就是进行数学运算的符号
假设int A=11,int B=2
运算符 | 描述 | 示例 |
+ | 两个数相加 | A+B=13 |
- | 两个数相减 | A-B=9 |
* | 两个数相乘 | A*B=22 |
/ | 分子除以分母 | A/B=5 |
% | 余数运算符,整除后的余数 | A%B=1 |
++ | 自增运算符,整数值增加 1 | A++=12 |
-- | 自减运算符,整数值减少 1 | A--=10 |
注意:
因为A和B是int类型数据,所以“/”运算后得到的也是int类型。小数部分直接省略。
示例:
#include <stdio.h>
int main()
{
int A=11,B=2,C;
C=A+B;
printf("C=%d",C);
return 0;
}
A++和++A的区别:
A的值是一样的,都会加一;但是C的值不一样A++是先赋值再加一,++A是先加一再赋值
#include <stdio.h>
int main()
{
int A=11,B=2,C;
C=A++;
printf("C=%d,A=%d\n",C,A);
A=11;//保证A的初始值都是11
C=++A;
printf("C=%d,A=%d",C,A);
return 0;
}
三、关系运算符
在C语言里,要判断很多变量的条件或者语句,会用到关系运算符,以此来决定程序的流程
运算符 | 关系 | 实际表示 |
< | 小于 | < |
<= | 小于等于 | ≤ |
> | 大于 | > |
>= | 大于等于 | ≥ |
= | 等于 | = |
!= | 不等于 | ≠ |
注意:
“=”是赋值,“==”才是判断两个数是否相等,不能混用。
#include <stdio.h>
int main()
{
int A=11,B=2,C;
if(C==A)
printf("C is equal to A");
else
printf("C is not equal to A");
return 0;
}
C语言没有“之间”、“中间”、“之内”或“在某范围内”这种表示范围的的关系运算符,例如年龄在25-30岁之间,只能表达为:年龄大于等于25岁并且 年龄小于等于30岁。
#include <stdio.h>
int main()
{
int CYCLY=20;
if(CYCLY<=25&&CYCLY>=30)
printf("The valid age for this is between 25 and 30 years old");
else
printf("The age for this is not between 25 and 30 years old");
return 0;
}
四、逻辑运算符(条件运算符)
说白了就是条件判断语句,就是上文中我们用到的if else 语句。
if
if(里面内容非0)就会执行if{}下面的代码块。“非0就是逻辑成立的意思”
如果里面内容不成立(等于0)就会跳过执行后面语句
如果if语句后面没有大括号,那么后面第一个分号之前的内容就是if成立执行的语句
else
if条件语句不成立的情况下执行的语句
嵌套的if else语句
常见错误:
a、忘了大括号了
b、if后面加分号
c、错误使用==和= if(a=b)
d、认真看待每一个警告
e、大括号里面的代码块记得缩进(代码风格很重要)
五、三目运算符
是由一个问号和一个冒号组成。语法组成是
表达式1?表达式2:表达式3; |
怎么理解?
先执行表达式1,如果表达式1的结果如果为真,那么执行表达式2,并且这个整体的运算式的结果是表达式2的结果;如果表达式1的结果如果为假,执行表达式3,运算式的结果是表达式3的结果。
#include <stdio.h>
int main()
{
int a,b,c;
a=2;
b=1;
c=(a>b)?a:b;
// if(a>b)
// c=a;
// else
// c=b;
printf("c=%d",c);
}
//第八行代码内容等于注释的代码内容
可以简单使用,知道怎么用就行,但是复杂逻辑不推荐用,因为过于复杂理解
比如判断是否是闰年
int year;
year=(year%100==0)?(year%400==0?1:0):(year%4==0?1:0);
六、sizeof 运算符
它既是运算符也是关键字,用来计算变量(或数据类型)在当前系统中占用内存的字节数。
sizeof(数据类型);//数据类型必须用括号括住。
sizeof(变量名);//变量也可以用括号括住。
示例:(验证)不同数据类型的所占内存1.h
#include <stdio.h>
int main()
{
int a;
char b;
short c;
long d;
float e;
double f;
printf("a's occupied memory is %d\n",sizeof (a));
printf("b's occupied memory is %d\n",sizeof (b));
printf("c's occupied memory is %d\n",sizeof (c));
printf("d's occupied memory is %d\n",sizeof (d));
printf("e's occupied memory is %d\n",sizeof (e));
printf("f's occupied memory is %d\n",sizeof (f));
}
七、运算符优先级与求值顺序
所有的关系运算符的优先级要比算术运算的低,但是比赋值运算的高
判断是否相等的==和!=的优先级比其他的低,而连续的关系运算是从左到右进行
简答来说:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符

被折叠的 条评论
为什么被折叠?



