浅谈C语言——初识C语言(3)

初识C语言(3)

本文章参考《C语言程序设计现代方法(第二版)》以及根据自己所学的总结,不正确或者不适当的地方欢迎批评指正,主要以学习总结以及应用为主,在深入学习的同时也会及时更正不适合的地方。
本次主要以介绍表达式为主,表达式是一个笼统的概念,包括重要运算符、优先级和结合性以及运算符与表达式语句等。
C语言的一个特点就是它更多地强调表达式而不是语句,表达式是表示如何计算值的公式。最简单的就是表达式时变量和常量。

3.1
1、算数运算符是包括C语言在内的许多编程语言中广泛应用的一种运算符,以下为几种重要运算符:
在这里插入图片描述
注意: 取模或取余运算符(%):i % j的值为i除以j后的余数
2、在有的算数运算符中可能产生意想不到的结果,可能会出现“截取”,可能会丢掉分数部分直接只出整数部分。
“截取”:当两个操作数都是整数时,运算符 / 会丢掉分数部分来取结果。
验证简单程序如下:

  /*验证运算符/“截取”现象*/
#include <stdio.h>

int main()
{
	float a = 3 / 4;
	int c = 3 / 4;
	printf("输出的结果是:%f\n",a);
	printf("输出的结果是:%d\n",c);
	return 0;
}

运行结果如下:
在运行这里插入图片描述

当运算符/和运算符%用于负数操作时,结果难以确定。
C89标准:两个其中有一个负数,除法结果可上取整也可下取整;
C99标准:除法的结果总是向0截取,i % j的结果符号与i相同。

/*验证运算符/与%的限制和运算*/
#include <stdio.h>

int main()
{
	float a = 3.5;
	int b = 4, a1=7;
	float  c =a / b;//a / b 结果为浮点型
	int e =a1 % b;//运算符%要求操作数为整数
	float f =a / b;//float / int 还为float
	printf("输出float结果c是:%f -------float / int \ n",c);
	printf("输出int结果e是:%d -------int % int    \n",e);
	printf("输出float结果f是:%f -----float / int  \n",f);
	return 0;
}

在这里插入图片描述

3.2优先级:以下为常用常见的优先级顺序,经常使用到。
如下:
在这里插入图片描述
当表达式包含两个或者两个以上相同优先级的运算时,仅有的运算符优先级可能不够用,故运用运算符的结合性来进行正常理想中的运算。
如下:
在这里插入图片描述



/***验证结和性*****/
#include <stdio.h>
int main()
{
	int a,b,c,e,f;
	 
	printf("输入数值a,b,c\n");
	scanf ("%d%d%d",&a,&b,&c);
	 e = a * b + c ;
	 f = (b + c) * a  ;
	printf("输出的结果e为:%d\n",e);
	printf("输出的结果f为:%d\n",f);
	return 0;

}


结果如下:
在这里插入图片描述
即:e=2*3+4=10
f=(3+4)*2=14符合上图运算结果。

3.3赋值操作与表达式求值语句
1、在C语言中 = 一般为赋值操作,常见的三种不合法赋值:

  • 10 = i;
  • i +j=10;
  • -i=j;
    2、基本的表达式求值在这里插入图片描述
    3、自增条件下的表达式求值,接下来以实际运行及其程序来灵活应用,程序如下(详看注释):
/*自增条件下的表达式求值*/
#include <stdio.h>
 main()
{
	int c,d,e,f,a=5,b=5,g=5,r=5,i,h;
	c=++a;//++a:a先执行自增1,运算后结果为6,再将6赋值于c,结果为6

	d=--b;//--b:b先执行自减1,运算后结果为4,再将4赋值于d,结果为4
	
	e=g++;//先将g的值赋值于e为5,然后g自增1
	
	f=r--;//先将r的值赋值于f为5,然后r自减1
	i=g;
	h=r;
	printf("++a=%d\n",c);
	printf("--a=%d\n",d);
	printf("a++=%d\n",e);
	printf("a--=%d\n",f);
	
	printf("g自增1后产生的结果:%d\n",i);
	printf("r自减1后产生的结果:%d\n",h);
	
}

运算结果如下:

在这里插入图片描述

好了!不知不觉又到了尾声,小编不易,期待各位看官的到来,还是用自己的理解来验证以及介绍一下,希望能给各位带来一些小小的帮助,加油!!!

不正确的或者不合适的地方欢迎批评指正,我们一块进步。

好了,就到这里喽,敬请期待接下的文章。

猜你喜欢

转载自blog.csdn.net/weixin_43540527/article/details/107812785