赋值与类型转换

变量赋初值
在编写程序的过程中常需要对一些变量预先设置初值,C语言允许在给定义变量的同时给变量赋初值 有以下几种述职方式
int x=5;
定义x为有符号的基本整型变量,赋初值为5
int x,y,z=6;
定义x,y,z为无符号基本整型变量,z赋初值为6
int x=4,y=4,z=4
定义x,y,z为无符号基本整形变量,初值均为4

类型转换
变量的数据类型可以转换,方法有两种,一种是自动转换,一种是强制转换
1.自动转换
自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成,自动转换遵循以下规则
若参与运算的量类型不同,则先转换成同一类型,然后进进行计算
转换按照数据长度增加的方向进行,确保精度不会降低,比如int和lang类型的数据进行运算时,先把int转换成lang型之后再进行运算
所有的浮点运算都是以双精度进行的,即使含float单精度量的表达式,也要先转换成double型,再进行计算。
Char型和short型参与运算时,必须先转换成int型
在赋值运算中,赋值号两边的量的数据类型不同时,赋值号右边俩的类型将转换成左边量的类型。如果右边量的数据类型长度比左边长时,将丢失一部分数据,从而降低精度;丢失的部分按四舍五入向前舍入

例子
Char a;
Int b;
Long int c;
Float d;
Double e;
Result=(a+b)*(c-a)/(d/e)

转换关系如下图

在这里插入图片描述

2强制转换
强制转换是通过类型转换运算来实现的。一般形式如下
【类型说明符】【表达式】
其功能是把表达式运算结果强制转换成类型说明符所表示的类型,如
(float) x;
表示把x转换成单精度型
(int) (x+y);
表示把x+y的结果转换成整数
(类型说明符必须加括号),(int)x,强制类型转换后不改变数据声明时对该变量定义的类型。

强制类型转换应用
#include<stdio.h>
Main()
{
Float a,b;
Int c;
Printf(“please input :\n”);
Scanf(“%f,%f”&a,&b);
C=(int) i%(int)j;
Printf(“%d”,c);

}
如果将C=(int) i%(int)j;
改为 I % j;
会直接报错 取余运算符两侧只能是整数

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值