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

C语言笔记 ——表达式

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

C语言笔记 ——表达式

一个表达式是一系列运算符和算子的组合,用来计算一个值

计算时间差的代码,体现出/和%的区别,一个舍余数,一个取余数。

int main ()
 {
	//计算时间差
	int hour1, hour2 = 0;
	int minute1, minute2 = 0;
	printf("请输入第一个时间n");
	scanf("%d:%d", &hour1, &minute1);
	printf("请输入第二个时间n");
	scanf("%d:%d", &hour2, &minute2);
	int t1 = hour1 * 60 + minute1;
	int t2 = hour2 * 60 + minute2;
	int delt = t2 - t1;
	printf("时间差为%d小时%d分钟", delt /60, delt % 60);
	 return  0;
	}

运算符的优先级

与数学相同,计算机中的运算符有不同的优先级

(单目 :表达式中有些运算符使用时用到两个算子称为双目运算符,而图中1,2所示单目运算符计算时只涉及一个算子,即途中给变量b取正值和取负值,进行一次单目运算,之后进行多目运算,即与变量a相乘。)

赋值运算符

与一些别的语言不同,C中赋值也是一种运算符,也有结果(某些语言中赋值是一种语句),如a=6的结果是a被赋予的值,也就是6;而 a=b=6-->a=(b=6)

        嵌入式赋值(一个不良习惯)

int a=6;
int b;
int c=1+(b=a);
  •  不易阅读
  • 容易产生错误

        结合关系(另一个不良习惯)

result=a=b=3+c;
result=2;
result=(result=result*2)*6*(result=3+result);

这样的表达式太复杂,不容易阅读和理解,容易造成读程序时的误解。所以要避免写出这样的复杂表达式来。这个表达式应该被拆成若干个表达式,然后以明显的正确的顺序来进行计算。        

        交换  (常用套路)

int t=a

a=b

b=c

        复合赋值

  • 5个算术运算符,+-*/%,可以和赋值运算符“=”结合起来,形成复合赋值运算符:“+=”,“-=”,“*=”,“/=”,“%=”
  • 如total += 5 ----->   total = total+5;
  • 注意两个运算符中间不要有空格
  • 注意a+=(b+1)/2--->a=a+(b+1)/2      a*=b+1--->a=a*(b+1)

        递增递减运算符

  • “++”和“--”是两个很特殊的运算符,它们是单目运算符,这个算子还必须是变量。这两个运算符分别叫做递增和递减运算符,他们的作用就是给这个变量+1或-1
  • count++;    count+=1;    count=count+1;
  • 前缀后缀:++和--可以放在前面和后面叫做前缀后缀形式。但a++的值是a加1以前的值,而++a的值是加了1以后的值,无论哪个,a自己的值都加了1 
int main()
{
	int a;
	a= 10;
	printf("a++=%dn", a++);
	printf("a=%dn", a);

	printf("++a=%dn", ++a);
	printf("a=%dn", a);

	return 0;
}

 

关系运算符

  • 用于判断条件,决定程序的流程 
  • “=”是赋值,“==”是判断两个数是否相等,注意不能混用。
  • C没有“之间”,“中间”,“之内”或“在某范围内”的关系运算符,只能表达大于等于某并且小于等于某。

当两个值的关系符合关系运算符的预期时,关系运算的结果为整数1,否则为整数0.

int main()
{
	printf("%dn", 5 == 5);
	printf("%dn", 5 == 6);
	printf("%dn", 5 < 6);
	printf("%dn", 5 > 6);
	return 0;
}

 结果 

优先级

1.所有的关系运算符的优先级比算数运算的低,但比赋值运算的 高。 

int main()
{
    printf("%dn",7>=3+4);
    
    return 0;
}

 得到结果为1(7>=3+4的和关系为真,值为1),而非5(7>=3的关系为真,值为1,与4相加得5)

2.判断是否相等的==和!=的优先级比其他的低,而连续的关系运算符是从左到右进行的。

5>3==6>4 先判断大小再判断相等 且判断大小从左到右进行

逗号运算符

一条语句理论上是有返回值的,如果语句里面有多个逗号,则以最后一个逗号后面的表达式值为返回值

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

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

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