c语言入门——运算符与表达式

各类数值型数据间的混合运算

  • 整数、实数、字符型数据 可以混合运算
    10+‘a’+ 1.5 - 8765.1234 *b’
  • 若参与运算量的类型不同,则先转换成同类型,然后进行运算。
    在这里插入图片描述
  • 在赋值运算中,赋值号两边量的数据类型同时,赋值号右边量的类型将转换为左边量的类型。

算术运算符和算数表达式

在这里插入图片描述
两个整数相除的结果为整数

  • a = 5,b=3
    a/b = 1

如果两个数有一个有小数,则结果为小数,

  • a = 4.0,b=2
    a/b = 2.0

如果除数或被除数中有一个为负值,舍入方向不固定。例如,-5/3,有的系统中得到的结果为-1,在有的系统中则得到结果为-2。

% 模运算符(求余)

  • %两侧均应为整型数据
  • 对于求余(%)运算,运算结果与第一个数的符号相同。
#include<stdio.h>
// 即5/2= 2......1   余数为1  
void main()
{
	int a,b;
	a = -5;  // 运算结果与第一个数的符号相同 
	b = 2;
	printf("%d",a%b); //-1    
}

算数表达式和运算符的优先级与结合性

  • 在表达式求值时,先按照运算符的优先级别高低次序执行。

  • 算术运算符的结合方向为“自左向右”。

  • 赋值运算符是“自右向左”
    在这里插入图片描述

    int a = 7;
    float x=2.5,y = 4.7;
    x+a%3*(int)(x+y)%2/4;

最后一个表达式的值是什么呢
2.500000
算术运算符的结合方向为“自左向右”,再结合优先级

强制类型转换

float a;
int b;
a = 5.5;
b = (int)a;

自增自减运算

++就是变量自身基础上加1;
— —就是变量自身基础上减1;

  • a++; 先运算加1
#include<stdio.h>
void main()
{
	int a = 5;
	printf("%d",a++);   //结果为5 
}
  • a–; 先运算减1
#include<stdio.h>
void main()
{
	int a = 5;
	printf("%d",a--);   //结果为5 
}
  • ++a; 先加1后运算
#include<stdio.h>
void main()
{
	int a = 5;
	printf("%d",++a);   //结果为6
}
  • –a; 先-1后运算
#include<stdio.h>
void main()
{
	int a = 5;
	printf("%d",--a);   //结果为4
}
  • (1)自增运算符(++)和自减运算符(- -)只能用于变量,不能用于常量和表达式。如:5++、(a+b)++都不合法。
  • ++和- -的结合方向是"自右向左"

赋值运算符和赋值表达式

1.赋值运算符 “=” 如 :a = 3
2.如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换。
int a;
a = 6.3;
则a的值为6;

在赋值符=之前加上其他运算符。

  • += a +=1 -> a = a+1
  • -= a -=1 -> a = a-1
  • *= a =1 -> a = a1
  • /= a /=1 -> a = a/1
#include<stdio.h>
void main()
{
	int a = 1;
	a += 1;
	printf("%d",a);	//2
}


#include<stdio.h>
void main()
{
	int a,b,c;
	a = (b=4)+(c=6);
	printf("a=%d b=%d c=%d",a,b,c);	//a=10 b=4 c=6
}

逗号运算符和逗号表达式

a = 3* 5,a* 4
(a = 3* 5,a* 4),a+5
这样的就是逗号表达式

  • 从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值。
    • a = 3* 5,a* 4 的值为60
    • (a = 3* 5,a* 4),a+5 的值为20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值