C++学习笔记2[表达式与语句]

本文详细介绍了C++中的运算符,包括算术、关系、逻辑、赋值、位运算及移位运算,并举例说明了运算过程。同时,讨论了表达式的类型转换,包括隐式和显式转换,以及语句的种类,如表达式语句、空语句、复合语句和函数调用语句,为C++初学者提供了清晰的学习路径。
摘要由CSDN通过智能技术生成

C++学习目录链接:
C++学习笔记目录链接(持续更新中)



一、表达式与语句

1.运算符

算术运算符

– 是自减运算符,属于单目运算符。有–expr 和expr–两种形式, - -expr表示expr自减1后再进行其他运算; expr -表示expr先参加完其他运算后再进行自减1, expr 只能是变量。例如,i–表示i自减1后再参与其他运算; --i 表示i参与运算后,i的值再自减; 1- 表示不合法。

关系运算符:主要用来比较两个数的大小。

逻辑运算符:是对真和假这两种逻辑进行运算,返回的仍然是一个逻辑值。

赋值运算符

位运算符:位逻辑或实际上是将操作数转换成二进制表示方式,然后将两个二进制操作数对象从低位(最右边)到高位对齐,每位求或,若两个操作数对象同- -位都为0,则结果对应位为0,否则结果中对应位为1。

移位运算符:
移位运算有两个,分别是左移< <和右移>>,这两个运算符都是双目的。
(1)左移是将-一个二进制操作数对象按指定的移动位数向左移,左边(高位端)溢出的位被丢弃,右边(低位端)的空位用0补充。右移相当于乘以2的幂,如图所示。

(2)右移是将-一个二进制操作数对象按指定的位数向右移动,右边(低位端)溢出的位被丢弃,左边(高位端)的空位或者-律用0填充,或者用被移位操作数的符号位填充,运算结果和编译器有关,在使用补码的机器中,正数的符号位为0,负数的符号为1.右移位运算相当于除以2的幂,如图3.4所示。

/*左移运算。*/

#include <iostream>
using namespace std;

void main()
{
    int a=0x40,b;
	b=a<<1;//左移1位
	cout<<"a:"<<a<<endl;//打印a
	cout<<"b:"<<b<<endl;//打印b
}

sizeof运算符:功能是返回指定的数据类型或表达式值的数据类型在内存中占用的字节数。
用法:sizeof(类型说明符)。sizeof(表达式)

条件运算符:<表达式1>?<表达式2>:<表达式3>
表示式1是一一个逻辑值,可以为真或假。若表达式1为真,则运算结果是表达式2,若表达式1为假,则运算结果是表达式3。这个运算相当于-一个if语句。

逗号运算符:C++语言中逗号“,”也是一种运算符,称为逗号运算符。逗号运算符的优先级别最低,结合方向自左至右,其功能是把两个表达式连接起来组成一个表达式。逗号运算符一个多目运算符,并且操作数的个数不限定,可以将任意多个表达式组成-一个表达式。

2.表达式

    表达式由运算符、括号、数值对象或变量等几个元素构成。一个数值对象是最简单的表达式,一个表达式可以看作一个数学函数,带有运算符的表达式通过计算将返回一个数值。例如1+1,3.141926,x>y>
    当表达式有两个或多个运算符时,表达式称为复杂表达式,运算符执行的先后顺序由它们的优先级和结合性决定。例如:(x+y)z,ax+b*y+z。

    一个表达式的值的数据类型由运算符的种类和操作数的数据类型决定。带运算符的表达式根据运算符的不同,可以分成算术表达式、关系表达式、逻辑表达式、条件表达式和赋值表达式等几类。

算术表达式:表达式 算术运算符 表达式
关系表达式:表达式 关系运算符 表达式
条件表达式:关系表达式?表达式:表达式
赋值表达式:表达式 赋值运算符 表达式
逻辑表达式:表达式 逻辑运算符 表达式
逗号表达式:表达式1,表达式2

3.表达式中的类型转换

1.隐式变换
    隐式转换发生在不同数据类型的量混合运算时,由编译系统自动完成。规则如下:

  • (1)若参与运算量的类型不同,则先转换成同一类型,然后进行运算。赋值时会把赋值类型和被赋值类型转换成同一-类型,一 般赋值 号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入。
  • (2)转换按数据由低到高顺序执行,以保证精度不降低。int型和 long型运算时,先把int型转成long型后再进行运算。所有的浮 点运算都是以双精度进行的,即使仅含float单精度量运算的表达式, 也要先转换成double型,再作运算。char型和 short型参与运算时, 必须先转换成int型。
/*隐式类型转换。*/

#include <iostream>
using namespace std;


void main()
{
    double result;
	char a='k';
	int b=10;
	float e=1.14;
	printf("%d\n",a);//打印k的
	cout<<"a+b="<<a+b<<endl;
	cout<<"a+b-e="<<a+b-e<<endl;

}

2.强制变换
    强制类型转换是通过类型转换运算来实现的,其-般形式为: 类型说明符(表达式) 或 (类型说明符)表达式。例如:(float)x
(int)(x+y),int(1.3)

/*强制类型转换。*/

#include <iostream>
using namespace std;
void main()
{
    float i,j;
	i=1.1,j=1.2;
	int k;
	k=int(i)+int(j);
	cout<<k<<endl;

}

4.语句

    在C++程序中,语句是最小的可执行单元,- 条语句由一个分号结束。
    C++程序语句按其功能可以划分为两类,- -类是用于描述计算机执行操作运算的,称为操作运算制的功能。基本的控制结构有3种:顺序结构、选择结构和循环结构。
    顺序结构指按照语句在程序中的先后次序-条-条顺次执行。顺序结构是自然形成的,不需要控制,按默认的顺序执行,顺序控制语句就是一条简单的语句。

1.表达式语句
表达式语句是由表达式后面加上-一个分号组成的。表达式有很多种,如关系表达式、逻辑表达式、算术表达式等,但关系表达式、逻辑表达式多用于循环或选择结构中,只有赋值表达式多用于赋值语
句。赋值表达式后面加上-一个分号可以形成赋值语句,将右边的表达式(算术表达式)的结果赋给左边的变量。一个赋值语句中可以包含多个赋值表达式。

2.空语句
空语句只有一个分号,表示什么也不做。空语句经常出现在选择或循环语句中,表示某个分支或循环体不执行具体的操作,也用于编制程序的初始阶段,在搭建程序的模块框架中,先用空语句占位, .
接下来再逐步细化和补充。例如:while(a < b){}

3.复合语句
复合语句是若干条语句的一个集合,它在语法上是-一个整体,相当于-一个语句,其语法形式是由一对大括号将若干条语句括起来。复合语句经常出现在选择或循环结构中,选择语句的分支和循环语句的循环体由多条语句组成时,用大括号括起来形成一条复合 语句,起到层次划分的作用。一对大括号形成了一个范围,这个范围也是变量的作用范围,也可以将大括号内的代码称之为程序段。在能使用简单语句的地方,都能够使用复合语句。在一个复合语句中可以包含另外-一个或多个复合语句。例如:
{x=1;
y=2;
z=x+y;
}

4.函数调用语句
函数由函数名、带实际参数表的圆括号组成,函数调用语句就是在函数后加_上-一个分号。调用主要指程序执行到函数调用语句时,会跳转到相应的函数体中执行该函数体中的内容,执行完所有内容后返回到函数调用语句处,执行调用语句下面的语句。可以调用的函数主要有用系统库函数和自定义
函数。顺序、选择、循环是结构化程序的3种基本结构。选择结构语句、循环结构语句会在后面章节讲到。


总结

本文讲解了表达式与语句。
在这里插入图片描述

作者:电气-余登武

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

总裁余(余登武)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值