自学内容网 自学内容网

【C】数据类型与变量(2)

数据类型与变量(2)

算术操作符 +,-,*,/,%

C语言中为了方便运算,提供了一系列操作符,其中有一组操作符叫:算术操作符。分别是:+ - * / %,这些操作符都是双目操作符
:操作符也被叫做运算符,是不同的翻译,意思是一样的

+ 和 -

+和-用来完成加法减法
+和-都是有2个操作数的,位于操作符两端的就是它们的操作数(a左操作数,b右操作数),这种操作符(有两个操作数)也叫双目操作符

以加法为例(减法同理):

#include <stdio.h>
int main() {
int a = 5;
int b = 3;
int c = a + b;//从右向左,将a+b的值存在c中
printf("%d", c);
return 0;
}

在这里插入图片描述

*

用来完成乘法
例:

#include <stdio.h>
int main() {
int num = 5;
printf("%d", num*num);
return 0;
}

在这里插入图片描述

/

用来完成除法

例1:

#include <stdio.h>
int main() {
int a = 6;
int b = 2;
int c = a / b;
printf("%d", c);
return 0;
}

在这里插入图片描述

例2:

#include <stdio.h>
int main() {
int a = 6;
int b = 4;
int c = a / b;
printf("%d", c);
return 0;
}

在这里插入图片描述
根据以上输出,可以得出:
/ 两端都是整数的时候,执行的是整数除法,只会返回整数部分,算不出小数
当除号两端至少有一个是浮点数时,才能计算出小数

故,将例2改为:

#include <stdio.h>
int main() {
float a = 6.0;
int b = 4;
float c = a / b;
printf("%f", c);
return 0;
}

在这里插入图片描述
printf在打印小数的时候,默认小数点后会打印六位

或者:

#include <stdio.h>
int main() {
int a = 6.0;
int b = 4;
double c = a *1.0/ b;//编译器会自动识别1.0为double类型
printf("%f", c);
return 0;
}

输出结果是一样的

%

表示求模(余),即返回两个整数相除的余值
只能用于整数,不能用于浮点数

#include <stdio.h>
int main() {
int a = 6 % 4;
printf("%d", a);
return 0;
}

在这里插入图片描述

当负数参与运算时:

#include <stdio.h>
int main() {
printf("%d\n", 11 % -5); //1
printf("%d\n", - 11 % -5);// -1
printf("%d\n", - 11 % 5);// -1
return 0;
}

可以看出,余数的正负取决于第一个操作数的正负

赋值操作符

=和复合赋值

在变量创建的时候给一个初始值叫初始化,在变量创建好后,再给一个值,这叫赋值

int a = 100;//初始化
a=200;//赋值,这里使用的就是赋值操作符
连续赋值

例:

#include <stdio.h>
int main() {
int a = 3;
int b = 5;
int c = 0;
c = b = a + 3;//连续赋值,从右向左依次赋值
//b = 6
//c = 6
return 0;
}

复合赋值

int a = 3;
a = a + 3;//a=6
a += 3;// +=复合运算符
a = a - 2;
a -= 2;// *=  /=  %=
复合运算符:
+=   -=
*=  /=  %=
>>=  <<=
&=  |=  ^=

单目操作符++,- -,+(正号),-(负号)

只有一个操作数的操作符

++和–

四种输出一样的语句:
a=a+1;
a+=1;
a++;//后置++
++a;//前置++
//不管是前置++还是后置++,都是+1的效果

a++与++a的区别:

a++:

#include <stdio.h>
int main() {
int a = 5;
int b = a++;
//相当于b=a,a=a+1
printf("a=%d\n", a);
printf("b=%d\n", b);
return 0;
}

在这里插入图片描述
后置++,先使用,后+1

++a:

#include <stdio.h>
int main() {
int a = 5;
int b = ++a;
//a=a+1 b=a
printf("a=%d\n", a);
printf("b=%d\n", b);
return 0;
}

在这里插入图片描述

前置++,先++,后使用

同理也可推出,前置- -和后置- -的区别
a- -:

#include <stdio.h>
int main() {
int a = 5;
int b = a--;
//b=a  a=a-1
printf("a=%d\n", a);
printf("b=%d\n", b);
return 0;
}

在这里插入图片描述
后置- -,先使用,后-1
- -a:

#include <stdio.h>
int main() {
int a = 5;
int b = --a;
//a=a-1  b=a
printf("a=%d\n", a);
printf("b=%d\n", b);
return 0;
}

在这里插入图片描述
前置- -,先- -,后使用

+(正号),-(负号)

例1:

#include <stdio.h>
int main() {
int a = +10;
printf("a=%d\n", a);
return 0;
}

在这里插入图片描述

例2:

#include <stdio.h>
int main() {
int a = -10;
int b = +a;
printf("b=%d\n", b);
return 0;
}

在这里插入图片描述

可以看出,正号不改变输出的值,可省略

#include <stdio.h>
int main() {
int a = -10;
int b = -a;
printf("b=%d\n", b);
return 0;
}

在这里插入图片描述
负号用来改变一个值的正负,负数前面加-就得到正数

强制类型转换

(类型)

例:

#include <stdio.h>
int main() {
int a = (int)3.14;//将double转化为int,只会保留整数部分,小数部分直接丢弃
printf("a=%d\n", a);
return 0;
}

在这里插入图片描述
ps:
又是一个新的早晨

生活中,我们总是不断地被定义,不断地被贴上各种标签,却忘了遵循自己的内心
允许自己做自己,也允许别人做别人
人生是自己的,我们可以是任何样子
——珍妮特·温特森

新的一天,加油!


原文地址:https://blog.csdn.net/2402_87467998/article/details/142834969

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!