c语言内置数据类型介绍

前言

介绍一下c语言的几种基本数据类型

 

一、C语言内置数据类型有哪几种

  • 整型
  • 字符型
  • 布尔类型

二、详细介绍

1.int   整型(表示整数)

短整型

short [int]  //  []表示实际编写代码时可以省略
[signed] short [int]  //有符号整数 可正可负可零
unsigned short [int]  //无符号型 表示0以及正整数
整型
int
[signed] int
unsigned int
长整形
long [int]
[signed] long [int]
unsigned long [int]
长长整形(C99引入)
long long [int]
unsinged long long int
[singed] long long int 

2.字符型(表示文本中的单个字符,字母、数字、标点符号、特殊字)

unsigned char
[signed] char  
  • charchar 的带符号性质在C语言标准中并没有明确定义。这意味着它的带符号性质可以因编译器和平台而异。在某些系统上,char 可能被视为有符号的,而在其他系统上,它可能被视为无符号的。这使得 char 在跨平台开发时可能引发一些问题,因为它的带符号性质不一定是一致的。

  • signed charsigned char 明确指定为带符号字符,它可以表示正数、负数和零。在大多数系统中,signed char 会被解释为有符号的,因此它的行为是明确的。

3.布尔型(c99引入,表示表示逻辑值,即真(true)或假(false))

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdbool.h>                               
#include<stdio.h>
int main()
{
_Bool target = true;
	if (target)
		printf("oi");
	return 0;
}

三、数据长度

  数据长度通常指的是一个数据类型所占用的内存空间的大小,通常以字节(bytes)为单位。数据长度与数据类型的选择和内存使用密切相关。在C和C++等编程语言中,可以使用sizeof运算符来获取数据类型的大小。

#include <stdio.h>
int main()
{
	printf("%zd\n", sizeof(char));                  /*1*/     /*  1为1字节(1Byte)=8比特位(bit) 计算机中一个二进制位为1比特*/
	printf("%zd\n", sizeof(unsigned char));	        /*1*/      
	printf("%zd\n", sizeof(short int));             /*2*/
	printf("%zd\n", sizeof(int));	                /*4*/     /*  因此,例如;一个短整型能存放2**8个数字        */
	printf("%zd\n", sizeof(long int));			    /*4*/     /*  unsigned 只能表示0和正整数,因此可以多出一                */
	printf("%zd\n", sizeof(long long int));         /*8*/     /*  个用于限定符号的比特位,进而可以存放的数据(max)增加了一倍*/
	printf("%zd\n", sizeof(float));					/*4*/
	printf("%zd\n", sizeof(double));				/*8*/
	printf("%zd\n", sizeof(long double));			/*8*/
	printf("%zd\n", sizeof(_Bool));					/*1*/
	return 0;
}

可以通过查看limit.h这一头文来查看各种数据类型的最大最小值范围

// 无符号字符的最大值
#define UCHAR_MAX 0xff

// 检查字符是否为无符号
#ifdef __CHAR_UNSIGNED__
#define CHAR_MIN 0
#define CHAR_MAX UCHAR_MAX
#else
#define CHAR_MIN SCHAR_MIN
#define CHAR_MAX SCHAR_MAX
#endif

// 多字节字符最大长度
#define MB_LEN_MAX 5

// 有符号短整数的最小值和最大值
#define SHRT_MIN (-32768)
#define SHRT_MAX 32767

// 无符号短整数的最大值
#define USHRT_MAX 0xffffU

// 有符号整数的最小值和最大值
#define INT_MIN (-2147483647 - 1)
#define INT_MAX 2147483647

// 无符号整数的最大值
#define UINT_MAX 0xffffffffU

// 有符号长整数的最小值和最大值
#define LONG_MIN (-2147483647L - 1)
#define LONG_MAX 2147483647L

// 无符号长整数的最大值
#define ULONG_MAX 0xffffffffUL

// 长长整数的最小值和最大值
#define LLONG_MAX 9223372036854775807ll
#define LLONG_MIN (-9223372036854775807ll - 1)

// 无符号长长整数的最大值
#define ULLONG_MAX 0xffffffffffffffffull

// 8位整数的最小值和最大值
#define _I8_MIN (-127 - 1)
#define _I8_MAX 127
#define _UI8_MAX 0xffu

// 16位整数的最小值和最大值
#define _I16_MIN (-32767 - 1)
#define _I16_MAX 32767
#define _UI16_MAX 0xffffu

// 32位整数的最小值和最大值
#define _I32_MIN (-2147483647 - 1)
#define _I32_MAX 2147483647
#define _UI32_MAX 0xffffffffu

这些符号常量的定义使得程序员可以以可移植的方式编写代码,而不必关心特定平台上整数类型的具体取值范围

------------------------------------------------------------------

THANKS

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值