栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言程序设计(运算符与表达式)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言程序设计(运算符与表达式)

运算符与表达式 理解
  • 运算符与表达式
      • 运算符与表达式的概念
      • 算术运算符与算术表达式
      • 关系运算符与关系表达式
      • 逻辑运算符与逻辑表达式
      • 赋值运算符与赋值表达式
      • 条件运算符与条件表达式
      • 位运算符
      • sizeof运算符
    • 运算优先级

运算符与表达式

运算符:就是参与运算的符号,与运算符一起运算的变量,常量称之为操作数

表达式:是变量或者直接量与运算符组成的式子,表达式会有一个计算的结果,称之为表达式的值

运算符与表达式的概念

在应用程序中,经常会对数据进行运算,所以勒C语言提供了多种类型的运算符,即专门用于告诉程序执行特定运算或逻辑操作的符号
有下面常见的七大类:

运算符类型作用
算数运算符用于处理四则运算
关系运算符用于表达式的比较,并返回一个真值或假值
逻辑运算符用于根据表达式的值返回真值或假值
赋值运算符用于将表达式的值赋值给变量
条件运算符用于处理条件判断
位运算符用于处理数据的位运算
sizeof运算符用于求字节长度
算术运算符与算术表达式

C语言中的算数运算符就是用来处理四则运算的符号
我们直接上图

运算符名称实列运算结果
+正号+33
-负号a=4;-a;-4
+加号1+12
-减号2-11
*9*981
/6/32
%求余数6%51
++自增(前)a=2;b=++a;b=3;a=3;
++自减(前)a=2;b=- -a;b=1;a=1;
自增(后)a=2;b=a++;b=2;a=3;
自减(后)a=2;b=a- -b=2;a=1;

关于自增,自减我们一定要注意:
(+号在前)++a 表示a自增后在参与其他运算
(-号在前) - -a 表示a自减后在参与其他运算
(+号在后)a++ 表示参与运算后a的值在自增1
(-号在后)- - ab 表示参与运算后a的值在自减1

算数表达式
使用算数运算符连接起来的表达式称为算数表达式。
上代码:

#include 
int main()
{
	int a,b,c,x,y,z;
	a=1;
	b=2;
	c=3;
	printf("%dn",a+b);
	printf("自增(前):%dn" ,++a);  //a自增 ,1+1=2,存储于a中,此时a中的值已经变为2(已经不再是1),在运算中输出得结果为2 。 
	 printf("自增(后):%dn",a++);   //a先运算, 因为a中存储的值为2,所以a=2,此时运算赋值给a=2.运算中输出的结果为2.然后在自增,得a=3 。后面自增得到结果,存储于a中,但并没有用到
	 printf("此时a的值:%dn",a); //这一步用到了,等于3,所以运算输出a=3 
	printf("自减(后):%dn",b--);//先b运算,上面赋给a的值为2,所以b=2,输出的值为2,然后自减,2-1=1.此时存储于b中的值为1. 
	printf("自减(前):%dn",--b);//先自减,因为上一步存储于b中的值为1,b=1.所以1-1=0.然后在进行运算,输出b的值为1.
	printf("自减(前):%dn",--c);
	printf("求余的值为:%dn",7%5);
}
//运行结果为:
3
自增(前):2
自增(后):2
此时a的值:3
自减(后):2
自减(前):0
自减(前):2
求余的值为:2
关系运算符与关系表达式

判断两个数据关系的运算符就叫做关系运算符,也称为比较运算符

运算符运算列子结果
==相等于1==20(假)
!=不等于1!=21(真)
<小于1<21(真)
>大于1>20(假)
<=小于等于1<=21(真)
>=大于等于1>=20(假)

关系运算符属于双目运算符,他们在运算时需要两个变量,如a>b
关系表达式
由关系运算符连接起来的表达式称为关系表达式

#include 
main()
{
	int x,y,z;
	//变量说明(声明)
    //函数内的变量声明务必要放到函数主体的最顶部
 
	int max(int a,int b);
	//函数声明(说明)
 
	printf("输入两个整数,判断大小:");
	//输出 字符串
 
	scanf("%dn %d",&x,&y);
	//输入 x和y的值,
	//scanf()为内置的输入函数
 
	z=max(x,y);
	//先调用max()函数,
	//再将max()函数返回的值赋给z
 
	printf("最大数是: %d n",z);
	//输出 字符串
	//printf()为内置的输出函数
}
//主函数(main)
 
int max(int a,int b)
{
	if (a>b) return a;else return b;
}
//自定义max函数
逻辑运算符与逻辑表达式

逻辑运算符用于判断复合条件的真假,其结果仍(真)或(假)

运算符名称列子结果
&&a&&b如果a和b都为真,其结果为真,否则为假
!a如果a为假,!a为真,否则为假
IIaIIb如果a和b有一个或者一个以上为真,则为真,否则为假

逻辑表达式
由逻辑运算符连接起来的表达式称为逻辑表达式
代码是在博主新垣结衣的老婆看到的

#include 
int main()
{
int age=0; // 年龄18-30
int height=0; // 身高165-175单位:厘米cm
int sc=0; // 身材,1-火辣;2-普通;3-飞机场。
int yz=0; // 颜值,1-漂亮;2-一般;3-歪瓜裂枣(翠花)。
printf("请输入年龄、身高、身材(1-火辣;2-普通;3-飞机场)(用空格隔开):");
scanf("%d %d %d",&age,&height,&sc);
printf("请输入颜值(1-漂亮;2-一般;3-歪瓜裂枣(翠花)):");
scanf("%d",&yz);
if ( ( (age >= 18) && (age <= 30) ) && // 年龄在25-30之间
( (height >= 165) && (height <= 175) ) && // 身高在165-175之间
两个都必须为真
( (sc == 1) ) && // 身材,1-火辣
( (yz == 1) || (yz == 2) ) ) // 颜值,1-漂亮或者2-一般
//两个有一个为真就行
{
printf("超女选秀合格,送往后宫。n");
}
else
{
printf("超女选秀不合格,发放五两银子后送回家。n");
}
}
赋值运算符与赋值表达式

赋值运算符的作用是将常量,变量或表达式的值赋给某一个变量

运算符名称列子结果
=赋值a=3;b=2;a=3;b=2;
+=加等于a=3;b=2;a+=b;a=5;b=2
-=减等于a=3;b=2;a-=ba=1;b=2
*=乘等于a=3;b=2;a*=b;a=6;b=2
/=除等于a=3;b=2;a/=ba=1;b=2
%=模等于(求余)a=3;b=2;a%=b;a=1;b=2

a+=b ----------- a=a+b
a-=b ------------a=a-b

#include
int main()
{
	int a=5;
	int b=(a=5);
	printf("%dn",b);
	int x,y,z;
	x=y=z=6;
	printf("老铁:%d%d%dn",x,y,z);
	int d=1;
	d+=1313;//d=d+1313
	printf("%d",d);
 } 
//运行结果:
5
老铁:666
1314
条件运算符与条件表达式

当编写程序时,往往会遇到条件判断
例如:判断a>b,当a>b成立时执行某一个操作,当a>b不成立时执行另外一个操作

表达式1? 表达式2 : 表达式3

#include
int main()
{
    int a = 10;
    int b = 20;
    int max = 0;
    max = (a > b ? a : b);//与下面的语句效果意义
    
    return 0;
}

位运算符

位运算符位( bit ) 是计算机中表示信息的最小单位,一般用 0和 1表示。位运算符是对其操作数按其二进制形式逐位进行运算。

sizeof运算符

C语言中提供了sizeof运算符,获取某一数据或者数据类型在内存中所占的字节数

格式

sizeof(类型说明符)
sizeof 表达式
#include
typedef struct Worke
{
char name[10];
int age;
long ID;
float height;
double weight;
}worker_t;
int main()
{
printf("char    :%lun", sizeof( char));
printf("int     :%lun", sizeof(int));
printf("long    :%lun", sizeof(long));
printf("float   :%lun", sizeof(float));
printf("double  :%lun", sizeof(double));
printf("worker_t:%lun", sizeof(worker_t));
printf("1+2     :%lun", sizeof(1+ 2));
printf("1+2.5   :%lun", sizeof(1+2.5));
printf("n");
return 0;
}



char    :1
int     :4
long    :4
float   :4
double  :8
worker_t:32
1+2     :4
1+2.5   :8

运算优先级

C语言的运算符包括单目运算符、双目运算符、三目运算符,优先级如下:

  1. 第1优先级:各种括括号,如()、[]等、成员运算符 . ;
  2. 第2优先级:所有单目运算符,如++、–、!、~等;
  3. 第3优先级(算数运算符):乘法运算符*、除法运算符/、求余运算符%
  4. 第4优先级(算数运算符):加法运算符+、减法运算符-;
  5. 第5优先级(移位运算符):移位运算符<<、>>;
  6. 第6优先级(条件运算符):大于运算符>、大于等于运算符>=、小于运算符<、小于等于运算符<=;
  7. 第7优先级(条件运算符):等于运算符==、不等于运算符!=;
  8. 第8优先级(按位运算符):按位与运算符&;
  9. 第9优先级(按位运算符):按位异或运算符^;
  10. 第10优先级(按位运算符):按位或运算符|;
  11. 第11优先级(逻辑与运算符):逻辑与运算符&&;
  12. 第12优先级逻辑与运算符:逻辑或运算符||;
  13. 第13优先级:三目条件运算符 ?: ;
  14. 第14优先级:各种赋值运算符,如=、+=、-=、*=、/= 等;
  15. 第15优先级:逗号运算, 。

算数运算符>移位运算符>条件运算符>按位运算符>逻辑运算符>赋值

//代码在博客凡仕咖啡看到的
//运算符优先级(没有涉及到复杂的)示例:
#include 
main() {
int a = 20;
int b = 10;
int c = 15;
int d = 5;
int e;
e = (a + b) * c / d; // ( 30 * 15 ) / 5
printf("Value of (a + b) * c / d is : %dn", e );
e = ((a + b) * c) / d; // (30 * 15 ) / 5
printf("Value of ((a + b) * c) / d is : %dn" , e );
e = (a + b) * (c / d); // (30) * (15/5)
printf("Value of (a + b) * (c / d) is : %dn", e );
e = a + (b * c) / d; // 20 + (150/5)
printf("Value of a + (b * c) / d is : %dn" , e );
return 0;}
//运行结果:
Value of (a + b) * c / d is : 90
Value of ((a + b) * c) / d is : 90
Value of (a + b) * (c / d) is : 90
Value of a + (b * c) / d is : 50


从现在做起,坚持下去,一天进步一小点,不久的将来,你会感谢曾经努力的你!

如果又出错的,请各位友友指正。

新人报到,各位友友们,给我个三联(点赞,关注,收藏)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/346787.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号