C语言日志(数据类型)

本文介绍了C语言中的数据类型,包括整数类型如int、char及其存储大小和范围,浮点类型如float、double的精度和范围,void类型在函数返回和参数中的应用,以及类型转换的概念和隐式、显式转换的示例。
摘要由CSDN通过智能技术生成

目录

C数据类型简介:

整数类型

 浮点类型:

void类型:

类型转换:


C数据类型简介:

       在C语言中,数据类型是用于声明不同类型的变量或者函数的一个广泛系统,它决定了变量存储空间的占用大小,以及如何解释存储的位模式,一般来说包括以下几种:

序号类型
1

基本类型:

一般是算术类型,例如:整型(int)、字符型(char)、单精度浮点型(float)、双精度浮点型(double)

2

枚举类型:

一般是算术类型,被用来定义在程序中只能赋予其一定的离散整数的变量

3

void类型:

表示没有值的数据类型,常用于函数返回值

4

派生类型:

一般有数组、指针和结构体等类型

整数类型

表格中列出了关于标准整数类型的存储大小和范围值的细节:

类型存储大小表示范围
int2或4字节-32,768~32,767或-2,147,483,648~2,147,483,647
usigned int2或4字节0~65,535或0~4,294,967,295
char1字节-128~127或0~255
signed char1字节-128~127
usigned char2或4字节0~255
short2字节-32,768~21,767
usigned short2字节0~65,535
long4字节-2,147,483,648~2,147,483,647
usigned long4字节0~4,28

下面用代码来表示数据类型的字节数大小以及范围:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <limits.h>

int main()
{
	printf("字节数        范 围\n\n");
	printf("  %d        %d到%d\n",(int)sizeof(int), INT_MIN, INT_MAX);
	printf("  %d        0到%u\n",(int)sizeof(unsigned int), UINT_MAX);
	printf("  %d        %d到%d\n",(int)sizeof(char), CHAR_MIN, CHAR_MAX);
	printf("  %d        %d到%d\n",(int)sizeof(signed char), SCHAR_MIN, SCHAR_MAX);
	printf("  %d        0到%d\n",(int)sizeof(unsigned char), UCHAR_MAX);
	printf("  %d        %hd到%hd\n",(int)sizeof(short), SHRT_MIN, SHRT_MAX);
	printf("  %d        0到%u\n",(int)sizeof(unsigned short), USHRT_MAX);
	printf("  %d        %d到%ld\n",(int)sizeof(long), LONG_MIN, LONG_MAX);
	printf("  %d        0到%lu\n",(int)sizeof(unsigned long), ULONG_MAX);
	printf("\n");
	return 0;
}

运行结果如图:

 浮点类型:

表格中列出了关于标准浮点类型的存储大小和范围值的细节:

类型

存储值大小表示范围精度
float4字节1.2E-38~3.4E+386位有效数字
double8字节2.3E-308~1.7E+30815位有效数字
long double16字节3.4E-4932~1.1E+493219位有效数字

下面用代码来表示数据类型的字节数大小以及范围:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <conio.h>
#include <limits.h>
#include <float.h>

int main()
{
    printf("字节数            范 围\n\n");
    printf("  %d             %e到%e\n",(int)sizeof(float),FLT_MIN,FLT_MAX);
    printf("  %d             %e到%e\n",(int)sizeof(double),DBL_MIN,DBL_MAX);
    printf("  %d             %le到%le\n",(int)sizeof(long double),LDBL_MIN,LDBL_MAX);
    printf("\n");
    return 0;
}

运行结果如图(由于编译器的不同会导致结果有差异,小编用的是 VS 2022 ):

注意:各类型的存储大小与系统位数有关系,目前以64位为主,一下是64与32位系统区别:

void类型:

此类型小编整理了三种情况:

序号类型与描述
1

函数返回为空:

c 中有各种函数都没有返回值,或者说它们返回空。不返回值的函数的返回类型为空。例如:void exit(int num);

2

函数参数为空:

c 中有各种函数不接收任何参数,不带参数的函数可以接收一个 void ,例如:int rand(void);

3

指针指向void:

类型为 void* 的指针代表对象的地址,而不是类型,例如,内存分配函数 void *malloc(size_t size):返回指向 void 的指针,可以转换为任何类型数据类型。

类型转换:

类型转换是将一个数据类型的值转换为另一种数据类型的值。

C 语言中有两种类型转换:

  • 隐式类型转换:隐式类型转换是在表达式中自动发生的,无需进行任何明确的指令或函数调用。它通常是将一种较小的类型自动转换为较大的类型,例如,将 int 类型转换为 long 类型或 float 类型转换为 double 类型。隐式类型转换也可能会导致数据精度丢失或数据截断。

  • 显式类型转换:显式类型转换需要使用强制类型转换运算符(type casting operator),它可以将一个数据类型的值强制转换为另一种数据类型的值。强制类型转换可以使程序员在必要时对数据类型进行更精确的控制,但也可能会导致数据丢失或截断。

隐式转换实例:

	int num1 = 3;
	float num2 = 5.21;
	double sum = num1 + num2;  //隐式将int类型转换为double类型
	printf("%lf\n", sum);

输出结果为:

 显式类型转换:

	double num = 3.14159;
	int sum = (int)num;
	printf("%d\n", sum);  //显式将double类型转换为int类型

输出结果为:

 各位小伙伴多多指教!😃 😃 😃 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

₯㎕*fine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值