简单易懂,近6千字超详细C语言基本数据类型解释

这篇具有很好参考价值的文章主要介绍了简单易懂,近6千字超详细C语言基本数据类型解释。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是数据类型?

在C语言中,数据类型是指用于存储数据的一组属性,包括数据的范围、精度、占用内存空间大小等等。C语言中的数据类型分为两大类:基本数据类型和派生数据类型
简单易懂,近6千字超详细C语言基本数据类型解释

为什么有这么多类数据类型?

C语言为我们提供了许多种的数据类型,那为什么会有那么多种数据类型呢?举个浅显的例子,你盖房子,总不可能都只用一种型号的砖吧,有些砖需要用来砌墙,有些砖需要用来铺地,如果都只用一种型号的砖,将会造成很多不必要的浪费,而且也不美观 C语言提供众多的数据类型也是一样的, 简单一点的整数数据用Int表示,要求更为精细的用实数浮点型来表示,再到后面甚至是数组,结构体,一切都是为了提高程序的空间利用率,以及效率,正是c语言提供了如此众多的数据类型,才使我们的程序编写更加便利
提起房子,创建变量可以想象成在内存中申请一个房子给你所需要的数值住,而房子的大小就用字节大小来表示,如:Int a=1;就可以想象成在内存中申请一个名为为a的int型的房子,其四个字节大小的房子中住在“1”。
另外,为了便利您接下来的阅读,请让我向你介绍C语言中一个比较重要的运算符:sizeof()。
sizeof()用于获取数据类型或变量在内存中占用的字节数。它是一个单目运算符而不是函数,其返回值是一个无符号值。

一般有两种使用方式

1.sizeof(数据类型)\计算出数据类型在内存中的字节大小

#include<stdio.h>代码示例
int main()
{printf("%d",sizeof(int));以有符号十进制整数形式输出数据类型Int在内存中的字节大小
return 0;
}

代码运行结果
简单易懂,近6千字超详细C语言基本数据类型解释

输出结果为:4,这里的返回的数字是一个字节数

2…sizeof(变量)\计算变量在内存中的字节大小

#include<stdio.h>
int main()\\代码示例
{int a=100;
printf("%d",sizeof(a));\\以有符号十进制整数形式输出变量a在内存中的字节大小
return 0;
}

代码运行结果
简单易懂,近6千字超详细C语言基本数据类型解释

输出结果为:4,用前文的话来讲因为变量a的“房子”大小为4字节

好了,在经过了对运算符sizeof()的理解后,让我们来取得所以基本数据类型的字节大小

#include<stdio.h>
int main()
{
	printf("%d\n", sizeof(short));输出结果为2
	printf("%d\n", sizeof(int));输出结果为4
	printf("%d\n", sizeof(long));输出结果为4
	printf("%d\n", sizeof(long long));输出结果为8
	printf("%d\n", sizeof(float));输出结果为4
	printf("%d\n", sizeof(double));输出结果为8
	printf("%d\n", sizeof(char));输出结果为1
	printf("%d\n", sizeof(unsigned short));输出结果为2fanghui
	printf("%d\n", sizeof(unsigned int));输出结果为4
	printf("%d\n", sizeof(unsigned long));输出结果为4
	printf("%d\n", sizeof(unsigned long long));输出结果为8
	printf("%d\n", sizeof(unsigned short));输出结果为2
	printf("%d\n", sizeof(unsigned char));输出结果为1
	return 0;
}

运行结果
简单易懂,近6千字超详细C语言基本数据类型解释

我们将要用这里的数据作为后面表格的数据来源
另外,sizeof()在后期数组的学习中会经常使用,所以最好对它有一个正确的理解

基本数据类型

C语言中基本数据类型包括整型、浮点型、字符型和布尔型。其中,整型又可细分为有符号整型和无符号整型,有符号整型包括、short、int和long等类型(也可写为 、signed short 、signed int 、signed long但一般省略signed)无符号整型包括unsigned char、unsigned short、unsigned int和unsigned long四种类型;浮点型包括float和double两种类型;字符型包括char类型;布尔型包括_Bool类型。这些数据类型在C语言中均有特定的关键字表示,如int、char、float等。
简单易懂,近6千字超详细C语言基本数据类型解释

整形

介绍:在C语言中,整型是一种数据类型,表示整数类型的数据。C语言中的整型可以分为有符号整型和无符号整型两种类型。有符号整型可以表示正数、负数和零,而无符号整型只能表示非负整数。
int,short,long,float等有符号整型通常使用补码表示法存储。补码表示法中,最高位表示符号位,0 表示正数,1 表示负数。例如,在 int 类型中,最高位被用来当成符号,因此最大值为01111111…111(31个1),最小值10000000…000(31个0)所以int类型的范围是从-2的31次方到2的31次方减1。其他的符号型也是同一道理
简单易懂,近6千字超详细C语言基本数据类型解释

我们将整型的各项数值,以表格的形式,表现出来

整型类型名· 字节大小 取值f范围 取值范围(十i进制) 输出格式 精度
int 4 -2^(32-1)~ 2^(32-1)-1 十进制(-2147483648~2147483647) %d 无小数位
short 2 -2^(16-1)~ 2^(16-1)-1 十进制(-32768~32767) %hd 无小数位
long 4 -2^(32-1) ~ 2^(31-1)-1 十进制(-2147483648 ~ 2147483647) %ld 无小数位
long long 8 -2^(63-1) ~ 2^(63——1)-1 十进制(-9223372036854775808 ~ 9223372036854775807) %lld 无小数位
unsigned int 4 0~2^32-1 十进制(0~4294967295) %u 无小数位
unsigned short 2 0 ~ 2^16-1 0 ~ 65535 %hu 无小数位
unsigned long 4 0 ~ 2^32-1 0 ~ 4294967295 %lu 无小数位
unsigned long long 8 0 ~ 2^64-1 0 ~ 18446744073709551615 %llu

以上结果在大多数编译器内都是一样的,但某些编译器可能会有不一样的结果,这是由于不同编译器对C语言规定的不同理解造成的
列如,有的读者可能会有疑问,为什么int和long数据类型大小和取值范围都是一样的?long不应该比int更长吗?那是因为在C语言规定中long的定义是长度大于或等于int,所以说有一些编译器就设置long的长度和int一样都是四个字节,这也是符合规定的。

浮点型

介绍:C语言中的浮点型数据类型表示有小数点的实数,包括单精度浮点型float和双精度浮点型double两种类型。
C语言的浮点型是没有signed和unsigned之分的,C语言中没有unsigned float数据类型是因为float数据类型的内存表示方式与signed int和unsigned int等整数类型不同。

在计算机中,整数类型采用的是二进制补码的表示方式。但是,浮点数的表示方式比整数复杂,需要使用IEEE 754标准来表示。由于标准的实现方式,
使用无符号的浮点数会导致数值溢出和舍入误差等问题。因此,在C语言中,只有signed float和double类型,而没有unsigned float和double类型。

    我们将整型的各项数值,以表格的形式,表现出来
类型名· 字节大小 取值范围 输出格式 精度
float 4 1.17549e-38 ~ 3.40282e+38 %f 6位小数
double 8 2.22507e-308 ~ 1.79769e+308 %lf 15位小数

补充知识,浮点型类型在内存中是以科学计数法的形式存储的,并且float和double 等浮点数可用%e来输出,输出结果为科学计数法

字符型

介绍:在C语言中,char是一种用于表示字符数据的基本数据类型。它通常占用1个字节的存储空间,即8位,用来表示ASCII码中的一个字符,但char类型也可由原来存储-128~127的整数,同时也存在unsigned char 可以存储0~255的整数

类型名· 字节大小 取值f范围 输出格式 精度
char 1 -128~127或 0~255 %c 无小数

1.char 用来存储字符

char c='a'如果要用char来存储字符,请在字符两侧用单引号引起来

我们创建了char c 这个变量,但c中的字符,在内存中并不是以字符形式存储,而是以Ascll码形式存储

下图为Ascll码表
简单易懂,近6千字超详细C语言基本数据类型解释
可以看出,C语言中字符其实也是一串二进制代码,我们必须要注意的是,在C语言中,字符型的数据也可以进行加减乘除的运算,但其实际进行计算的是Ascll码值
列如

# include<stdio.h>
int main()
{
	char a = '9';初始化变量a为字符‘9printf("%d", a+1);计算a+1
	return 0;

}

代码运行结果
简单易懂,近6千字超详细C语言基本数据类型解释
输出结果为58,因为‘9’的ascll码值为57

2.char存储整数

char c=100;//初始化变量c为整数100
注意,当char存储整数时,取值范围为-128~127unsigned0~255)容易出现溢出建议不要用其存储整数

转义字符

既然提到了字符,那肯定就不能不讲转义字符,C语言中的转义字符是一种特殊的字符序列,由反斜线(\)和后面紧跟着的一个或多个字符组成,用以表示一些不可打印的字符或控制命令
为什么会有转义字符?
C语言中引入转义字符是为了表示一些不可打印字符、特殊字符和控制字符,这些字符无法直接在代码中输入,需要使用转义字符来表示。例如,换行符是一个不可打印字符,可以使用转义字符"\n"来表示。另外,一些特殊字符如双引号和反斜杠,需要使用转义字符来转义,以避免它们被误解为代码中的特殊符号。

下面为一张转义字符表

简单易懂,近6千字超详细C语言基本数据类型解释

布尔型

C语言有4个国际标准,包括C89,C90,C11和C18,目前使用较为广泛使用的·标准是C90,而我们介绍的布尔型是C99标准之后才有的的,所以并不是所以的编译器都支持布尔型,不过作者在查阅资料时经常有资料将布尔型归入C语言数据类型中,所以特地拿出来讲一下,但不会做过多解释,初学者了解一下这个类型就可以了,有兴趣可以自己去学习。
在 C 语言中,布尔型数据类型是用来表示真或假的数据类型,也就是用来进行逻辑判断的数据类型。C语言中定义的布尔型数据类型是 _Bool,取值只有 true 和 false 两种,可以使用关键字 true 和 false 来进行初始化,也可以使用数字 1 和 0 分别表示 true 和 false。例如:

bool is_true = true;
bool is_false = false;
bool num_true = 1;
bool num_false = 0;

布尔型数据类型主要用于条件语句、循环语句和逻辑表达式中,比如 if 语句、while 循环、逻辑运算符等等。在条件判断中,为真的条件通常被表示为非零值,而为假的条件则被表示为 0。布尔型数据类型在编写逻辑控制流程时非常有用,可以使程序更加清晰和易于理解。
代码示例

#include <stdio.h>
#include <stdbool.h>

int main() {
    bool what = true;
    
    if (what) {
        printf("yes\n");
    } else {
        printf("No\n");
    }
    
    return 0;
}

输出结果为Yes
简单易懂,近6千字超详细C语言基本数据类型解释

%d和%i的小知识

在为这篇博客搜集资料的时候,意外发现了与%d功能十分相同的格式输出字符%i。关于%d是我们日常编程中经常使用的,用于输出有符号十整数的格式输出符,那至于%i,我相信有很多初学者是第1次见

先说一下百分号地和百分号的相同点吧
在printf()函数中,这两个的功能是完全相同的,都是输出有符号10进制整数
它们的区别主要在是scanf()函数上
当你使用%d时候,如果你实际输入的是8进制16进制的数,%d会忽略前面的八进制或者十六进制符号直接输入后面的数字
但是如果你使用%i,%i会读取前面的8进制和16进制符号,如果它读取到这些符号之后的实际输入也会转换成8进制和16进制,然后再转换为十进制
具体可以点击这里《简单易懂,C语言中%d和%i的区别》

总结

C语言为我们提供了许多种数据类型,今天我们这篇博文主要详细介绍了c语言中的基本数据类型包括,整型浮点型字符型,以及简略的带过了布尔型,其中介绍了许多可能会有用的小知识,希望能加深大家对这些数据类型的印象,在开头的思维导图中,我还画出了派生类型,在之后的博文会逐步更新其中的内容
如果这篇博文对你有点帮助,请点个赞,水一下评论,(三连必回)后期我会定期更新博客,朋友们可以关注一下我,感谢老铁
简单易懂,近6千字超详细C语言基本数据类型解释文章来源地址https://www.toymoban.com/news/detail-417279.html

到了这里,关于简单易懂,近6千字超详细C语言基本数据类型解释的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android StudioJNI开发之NDK环境的搭建以及添加JNI支持(图文解释 简单易懂)

    有问题可以评论区留言讨论~~~ Android系统的所谓原生开发是在App中调用C/C++代码,鉴于这两个语言具有跨平台的特性,如果某项功能使用C/C++实现,就很容易在不同平台之间移植。 完整的Android环境包括三个开发工具。分别是JDK SDK NDK 分别简述如下 1:JDK是Java代码的编译器 因为

    2024年02月14日
    浏览(44)
  • 【C语言】自定义类型详细讲解(结构体、位段的简单到深入)

    目录 1.结构体的声明 1.1基础知识 1.2结构体的声明 1.3结构体的特殊声明  1.4结构体的自引用 1.5结构体变量的定义和初始化 1.6结构体内存对齐 那对齐这么浪费空间,为什么要对齐  1.7修改默认对齐数 1.8结构体传参 2.位段 2.1什么是位段 2.2位段的内存分配 深入研究VS环境下的位

    2023年04月21日
    浏览(31)
  • Go 语言基本数据类型

    Go 语言中数据类型分为:基本数据类型和复合数据类型 基本数据类型有: 整型、浮点型、布尔型、字符串 复合数据类型有: 数组、切片、结构体、函数、map、通道(channel)、接口等。 整型分为以下两个大类: 有符号整型按长度分为:int8、int16、int32、int64 对应的无符号整

    2024年01月22日
    浏览(39)
  • C语言之基本数据类型和数

    目录 算数类型和基本数据类型  基数  基数转换 由八进制数、十六进制数、二进制数向十进制数转换 由十进制数向八进制数、十六进制数、二进制数转换 二进制和十六进制的基数转换 在学习基本数据类型之前我们先来学习数。 在前面的学习中我们可以使用int型double型的变

    2024年02月04日
    浏览(33)
  • Go语言编程教程-基本数据类型

    了解布尔类型 了解整数类型 了解浮点数类型 了解复数类型 了解字符串类型 了解字符类型 类型 名称 取值范围 说明 bool 布尔类型 true 或 false 默认值为 false 类型 名称 取值范围 说明 uint8 8位无符号整型 0 ~ 255 uint16 16位无符号整型 0 ~ 65535 uint32 32位无符号整型 0 ~ 4294967295 uint6

    2024年02月04日
    浏览(43)
  • C语言 Number 1 基本数据类型

    首先是针对C语言的数据类型做个整理 大致分为四个大类型 基本类型 枚举类型 空类型 派生类型 那么根据以上四个大类型 我们来一一的做一个分站式讲解 基本类型其中大致分为两类 整型 和 浮点型 整型 (我在基本类型后面都附上了字节长度,这里是指在64位编译器下的长度

    2024年02月05日
    浏览(31)
  • Go语言基础之基本数据类型

    Go语言中有丰富的数据类型,除了基本的整型、浮点型、布尔型、字符串外,还有数组、切片、结构体、函数、map、通道(channel)等。Go 语言的基本类型和其他语言大同小异。 整型 整型分为以下两个大类: 按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8、uint1

    2024年02月12日
    浏览(34)
  • C语言中基本数据类型-char介绍

    char是c语言中最基本的数据类型之一,叫字符型,在内存中占用一个字节的空间,可以用于存放单个字符,也可以用于存放整数,char可以分为有符号和无符号两种类型,下面对着两种类型分别进行介绍: 有符号字符型变量使用char来定义,比如char b,b作为有符号字符型变量,

    2024年02月06日
    浏览(26)
  • 单片机语言--C51语言数据类型与存储类型以及C51的基本运算

    C51的基本语法与标准C相同,C51在标准C的基础上进行了适合于51系列单片机硬件的扩展。 深入理解Keil C51对标准C的扩展部分以及不同之处,是掌握C51语言的关键之一。 C51与标准C的主要区别如下: (1)库函数的不同。 (2)数据类型有一定的区别。 (3)C51的变量存储模式与标

    2024年04月10日
    浏览(33)
  • 【Golang】认识Go语言中基本的数据类型

    目录 整形 基本整型  特殊整型 浮点型 布尔型 字符型 字符串转义符  多行字符串 字符串的常用操作 复数 我们不论在学习什么语言中,我们都要去认识一下这个语言中的数据类型,当然学习Go也不例外,我们也要去认识一下其相关的数据类型,当然这些数据类型基本上是大

    2023年04月08日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包