C Programming学习笔记【谭浩强老师编】(第三章顺序程序设计)03 运算符和表达式



一、运算符和表达式

在这里插入图片描述

二、常用的算数运算符:

在这里插入图片描述
注意:
1.两个实数相除,结果是双精度实数
2.两个整数相除的结果为整数
3.%只用于整数

三、自增(++)自减(–)运算符

++i,–i 在使用i之前,先使i的值加/减1
i++,i-- 在使用i之后,使i的值加/减1

++i是先执行i=i+1,再使用i的值;而i++是先使用i的值,再执行i=i+1。

int i=3,j;
j=++i;	//i的值先变成4, 再赋给j,j的值为4

int i=3;
printf(%d”,++i);	//输出4

int i=3,j;
j=i++;	//先将 i的值3赋给j,j的值为3,然后i变为4

int i=3;
printf(%d”,i++);	//输出3

四、类型转换(重点)

自动类型转换
1.+、-、*、/运算的两个数中有一个数为float或double型,结果是double型,因为系统将所有float型数据都先转换为double型,然后进行运算。
2.如果int型与float或double型数据进行运算,先把int型和float型数据转换为double型,然后进行运算,结果是double型。
3.字符(char)型数据与整型数据进行运算,就是把字符的ASCII代码与整型数据进行运算。如果字符型数据与实型数据进行运算,则将字符的ASCII代码转换为double型数据,然后进行运算。

举例1:

int i=3;
float f=2.5;
double d=7.5;
printf("%lf",10+'a'+i*f-d/3);

10+‘a’+if-d/3
① 进行10+′a′的运算,′a′的值是整数97,运算结果为107。
② 由于“
”比“+”优先级高,先进行if的运算。先将i与f都转成double型,运算结果为7.5,double型。
③ 整数107与i
f的积相加。先将整数107转换成双精度数,相加结果为114.5,double型。
④ 进行d/3的运算,先将3转换成double型,d/3结果为2.5,double型。
⑤ 将10+′a′+i*f的结果114.5与d/3的商2.5相减,结果为112.0,double型。

举例2:

给定一个大写字母,要求用小写字母输出。

#include <stdio.h>
int main()
{
	char c1,c2;
	c1='A'; 			//将字符′A′的ASCII代码放到c1变量中
	c2=c1+32;			//得到字符′a′的ASCII代码,放在c2变量中 
	printf("%c\n",c2);	//输出c2的值,是一个字符
	printf("%d\n",c2);	//输出c2的值,是字符′a′的ASCII代码
	return 0;
}

强制类型转换:当自动类型转换不能实现目的时,可以用强制类型转换。
强制类型转换运算符

(类型名)(表达式)

(double)a		将a转换成double(int)(x+y)		将x+y的值转换成int(float)(5%3)5%3的值转换成float(int)x+y		只将x转换成整型,然后与y相加

int a; float x,y;double b;
a=(int)x
进行强制类型运算(int)x后得到一个int类型的临时值,它的值等于x的整数部分,把它赋给a,注意x的值和类型都未变化,仍为float型。该临时值在赋值后就不再存在了。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值