数据类型及其运算(一)

文章详细介绍了C语言中的几种基本数据类型,包括整型(char、short、int、long、longlong)、浮点型(float、double)以及空类型(void)。同时,讨论了强制类型转换的语法和注意事项,以及不同类型数据在混合运算时的规则,如自动提升到更高精度类型进行计算。最后,通过示例展示了运算过程中的类型转换和计算结果。
摘要由CSDN通过智能技术生成

整型

类型名称存储大小
char字符数据类型1
short短整型2
int整型4
long长整型4
long long更长整型8

类型的存储大小与系统的位数有关,可以在平台使用 sizeof 运算符得到类型的存储字节大小
(以下数据为VS2013)

#include <stdio.h>
int main()
{
	printf("%d\n", sizeof(char));
	printf("%d\n", sizeof(short));
	printf("%d\n", sizeof(int));
	printf("%d\n", sizeof(long));
	printf("%d\n", sizeof(long long));
	return 0;
}

类型的使用:

char ch = ‘w’;
int weight = 120;

浮点型

类型名称存储大小有效位
float单精度浮点数46
double双精度浮点数815
#include <stdio.h>
int main()
{
	printf("%d\n", sizeof(float));
	printf("%d\n", sizeof(double));
	return 0;
}

为了提高运算精度,在C语言中进行浮点数的算术运算时,都将float型数据转换为double型

空类型

void类型特点:

  1. 函数不返回值 例:void p1(int a, int b)
  2. 函数参数为空 例:int main(void)
  3. 类型为void*的指针表示为对象的地址,不是类型

强制类型转换

将一个表达式转换成所需类型
一般形式为:(类型名)(表达式)
注意:表达式应括起来

(int) (x+y)与(int) x+y不一样
(int) (x+y)——x+y的值进行强制类型转换为int类型
(int) x+y——先将x强制类型转换为int类型后,再与y相加

在强制类型转换时,得到一个所需类型的中间数据,而原来的变量类型未发生变化

不同类型数据的混合运算

若运算符两侧的数据类型不同,则先进行类型转换,在进行运算

  1. +、-、*、/运算的两个数中有一个float型或double型,结果为double型
  2. int型与float型或double型进行运算,结果为double型
  3. 字符char型与整型进行运算,把字符的ASCII码与整型数据进行运算,结果为整型
  4. 字符char型与浮点型进行运算,把字符的ASCII码转换为double型,在进行运算,结果为double型
#include<stdio.h>
int main()
{
	int a = 10;
	char b = 'a';
	int c = 3;
	float d = 2.5;
	double e = 7.5;
	printf("%f\n", a + b + c*d - e / 3);
	return 0;
}

结果为:
112.000000

分析:
编译时从左向右进行

  1. a+b = 10+‘a’,‘a’的ASCII码为97,结果为107
  2. “ * ”优先级比“ + ”高,故进行乘法运算,先将c和d都转换为double型,再运算c*d的结果为7.5
  3. 107+7.5,先将107转换成double型107.0,再相加,结果为114.5
  4. “ / ”优先级比“ - ”高,进行除法运算,先将3转换成double型,再运算e/3的结果为2.5
  5. 114.5-2.5=112.0(此时运算符两侧的数都为double型,可直接运算)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值