算术操作符【+ 、-、*、/、%】
+ & -
分别用来表示加法与减法运算。
#include <stdio.h>
int main()
{
int a = 10;
int b = 3;
//我们在此处定义a,b的值
int c = a - b; //此处我们定义一个整数c,并且使得它的值等于a - b,此时答案应该为7
int d = a + b; //此处我们定义一个整数d,并且使得它的值等于a + b,此时答案应该为13
printf("%d %d", c, d);
return 0;
}
由上述代码我们可以知道,算数操作符"+"与"-"与数学的加减运算相同。
* & /
分别用来表示乘法与除法运算。
#include <stdio.h>
int main()
{
int a = 6;
int b = 3;
//我们在此处定义a,b的值
int c = a * b; //此处我们定义一个整数c,并且使得它的值等于a * b,此时答案应该为18
int d = a / b; //此处我们定义一个整数d,并且使得它的值等于a / b,此时答案应该为2
printf("%d %d", c, d);
return 0;
}
由上述代码我们可以知道,算数操作符"*"与"/"与数学的乘除运算相同。
%[求模运算]
用来进行求模运算,也可理解为求余数。
#include <stdio.h>
int main()
{
int a = 6;
int b = 3;
int c = 4;
//我们在此处定义a,b的值
int d = a % b; //此处我们定义一个整数d,并且使得它的值等于a % b,此时答案应该为0
int e = a % c; //此处我们定义一个整数e,并且使得它的值等于a % c,此时答案应该为2
printf("%d %d", d, e);
return 0;
}
有上述代码我们可以知道,由于6可以被3整除,也就是说6 / 3的余数为0,故6 % 3 = 0,同理,由于6 / 4的余数为2,所以6 % 4 = 2,因此我们可以将求模运算看作是求余数的运算。
赋值操作符
=
赋值:在变量创建的时候给一个初始值叫初始化,在变量创建好以后,再给一个值,这叫赋值。
#include <stdio.h>
int main()
{
int a = 100; //我们在此处初始化一个整数a,使它的值等于100
a = 200; //我们在此处使用赋值符号=使得a被赋值为200,也就是说,现在a的值应该等于200
printf("%d", a); //我们打印a可以发现,a的值此时为200,即a被成功赋值
return 0;
}
并且!赋值操作符=可以实现连续赋值操作。
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0; //我们首先初始化三个字符a, b ,c
c = b = a + 3; //此处为连续赋值操作,从右往左依次进行赋值
printf("%d %d", c , b); //此时我们打印c与b的值,得到的结果就都应该为3
return 0;
}
复合赋值符
简化自身运算操作。
#include <stdio.h>
int main()
{
int a = 0;
a = a + 3; //当想实现自运算操作时,我们可以使用这样的方法,即完整写出自身 + 3
a += 3; //我们还可以使用此类复合赋值符,同样表示自身 + 3,故此时a的值为6
printf("%d", a);
return 0;
}
同样的操作符还有: -= 、*= 、 /= 、 >>= 、 <<= 、 &= 、 |= 、 ^=
单目操作符
++&--
前置++:先+1,后使用
#include <stdio.h>
int main()
{
int a = 10;
int b = ++a; //此处为前置++,故应该先给a + 1,再执行赋值操作,即b的值为11
printf("%d %d", a , b); //结果都为11
return 0;
}
后置++:先使用,后+1
#include <stdio.h>
int main()
{
int a = 10;
int b = a++; //此处为后置++,故应该先给b赋值,再执行加法操作,即b的值为10
printf("%d %d", a, b); //答案为 11 10
return 0;
}
前置--:先-1,后使用
后置--:先使用,后-1
代码与++类似
+ & -
表示正负号。
题目小练
求出a, b, c的值【解析在代码下方,可以自己尝试算一下】
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
a = 6;
c = a++;
b = ++a, b++, ++c, a++;
b += a++ + c;
printf("a = %d b = %d c = %d\n", a, b, c);
return 0;
}
答案:a = 10 b = 25 c = 7
解析
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
a = 6; //在此处a被赋值为6,即此时a = 6
c = a++; //此处为后置++,故先使用再+1,此时c = 6 , a = 7
b = ++a, b++, ++c, a++; //此处从左往右依次运算,由于 b = ++a为前置++,故先+1,后使用
//依次运算后有a = 9 , b = 9 , c = 7
b += a++ + c; //此处为后置++,故先使用,b为复合赋值符,故做自身运算
//得结果为a = 10 , b = 25 , c = 7
printf("a = %d b = %d c = %d\n", a, b, c);
return 0;
}