C++的运算符——算术运算符,赋值运算符,逗号运算符及其表达式

本文介绍了C++中的基本运算符,包括算术运算符、自增自减运算符、类型转换等,并探讨了不同数据类型之间的混合运算及赋值过程中的类型转换规则。

2.4  C++的运算符

2.5  算术运算符与算术表达式

    在有了常量和变量之后,我们就应该想到对这些数据进行运算。对此C++引入了运算符,C++的运算符十分的丰富。同加减乘除的数学运算法则相似,在C++中也有其运算符的优先性和结合性。

有:

2.5.3 表达式中各类数值数据间的混合运算

    在C++中一个数据可能由不同的数据类型表示,但在进行运算时,不同类型的数据要先转换为同一类型的数据,才可进行运算。 C++在运算时对所有float型数据都按double型数据处理。

                     数据类型级别高底,依次从右到左,从下到上逐渐增加,其中double级别最高,依次向long,float递减,long向unsigned递减,unsigned向int,int向char和short递减。

doublefloat
long
unsigned
int

char,short

2.5.4  自增(++)和自减(--)运算符

    ++i(在使用i之前,先使i的值加1)

    --i(在使用i之前,先使i的值减1)

    i++(在使用i之后,i的值加1)

    i--(在使用i之后,i的值减1)

i=3;
cout<<++i;
//此时输出4
cout<<i++;
//此时输出3

2.5.5  强制类型转换运算符

    在表达式中不同类型的类型会自动地转换类型,计算。当然有时作者也可以使用强制类型转换运算符将一个表达式转换成所需类型。有(double)a    (将a转换成double类型)

    例2.4

#include<iostream>
using namespace std;
int main()
{
float x;
int i;
x=3.6;
i=(int)x;
cout<<"x="<<x<<",i="<<i<<endl;
return 0;
}

    运行结果:x=3.6,i=3   x的类型仍为float型,值仍等于3.6

2.6  赋值运算符和赋值表达式

2.6.2  赋值过程中的类型转换

    (1)将浮点型数据赋给整型变量时,舍弃其小数部分。

    (2)将整型数据赋给浮点型变量时,数值不变,但以指数形式储存到变量中。

    (3)将一个double型数据赋给float变量时,要注意数值范围不能溢出。

    (4)字符型数据赋给整形变量,将字符的ASCII码赋给整型变量。

    (5)将一个int,short或long型数据赋给一个char型变量,只将其低8位原封不动地送到char型变量(发生截断)。

    例2.5  有符号数据转送给无符号变量

#include<iostream>
using namespace std;
int main()
{
unsigned short a;
short int b=-1;
a=b;
cout<<"a="<<a<<endl;
return 0;
}

    运行结果:65535     为什么我给b赋的值是-1,却输出了65535呢?不同类型的整型数据间的赋值归根到底就是一条:按储存单元中的储存形式直接传送。这边有关于补码的知识,我不了解,便不多阐述了。

2.6.4  赋值表达式

    一般形式:变量=表达式

    C++将赋值表达式作为表达式的一种,使赋值操作不仅可以出现在赋值语句中,而且可以以表达式形式出现在其他语句(如输出语句,循环语句等)中。

2.7  逗号运算符和逗号表达式

    逗号运算符,又称为“顺序求值运算符”。一般形式:表达式1,表达式2

    逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。C语言和C++语言表达能力强,其中一个重要方面就在于它的表达式类型丰富,运算符功能强,因而使用灵活,适应性强。

分享一题:找到1-100的所有素数

#include<math.h>
#include<stdio.h>
int is_prime(int n)
{
	int j = 0;
	for (j = 2; j <=sqrt(n); j++)
	{
		if (n % j == 0)
			return 0;
	}
	return 1;
}

int main()
{
	int i = 1;
	for (i = 1;i<= 100; i++)
	{
		if (is_prime(i) == 1)
			printf("%d\t", i);
	}
	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鳄鱼麻薯球

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值