C语言数据类型详解,包括基本数据类型(整型,实型)和构造类型及类型转换(自动类型转换,强制类型转换) 您所在的位置:网站首页 版式的基本类型包括哪些 C语言数据类型详解,包括基本数据类型(整型,实型)和构造类型及类型转换(自动类型转换,强制类型转换)

C语言数据类型详解,包括基本数据类型(整型,实型)和构造类型及类型转换(自动类型转换,强制类型转换)

2024-07-11 22:42| 来源: 网络整理| 查看: 265

当我们编写C语言程序时,需要使用不同的数据类型来定义变量。数据类型就像是一种模子,用来确定变量在内存中的大小和表示方式。

想象一下,我们需要在内存中创建一个变量来存储一个整数值。我们可以选择使用int这个数据类型,它就像是一个模子,告诉计算机在内存中为这个变量预留多大的空间。类似地,如果我们需要存储一个小数,就可以选择使用float或double这样的数据类型。

数据类型还可以帮助我们规定变量能够表示的值的范围和允许的操作。比如,字符型数据类型char用于存储单个字符,而布尔型数据类型bool用于表示真或假的值。

此外,我们还可以根据需要创建自己的数据类型。比如,通过结构体,我们可以将多个不同类型的变量组合在一起,形成一个新的数据类型,以便更好地表示复杂的数据结构。

选择合适的数据类型对于程序的效率和可读性非常重要。通过正确选择数据类型,我们可以更有效地使用内存,并确保变量能够正确地存储和处理所需的数据。

1.1.类型总揽

图片

1.2 基本数据类型

1.2.1整数类型:

char 字符(小整型), 1B short int 或short 短整型 2B int 整型 4B long int 或long 长整型, (32位机)4B/8B

char是一般引用ASCII表字符, 每一个字符都有对应的数值,又称之为小整型。

目前使用最广泛的西文字符集及其编码是 ASCII 字符集和 ASCII 码( ASCII 是American Standard Code for Information Interchange 的缩写),它同时也被国际标准化组织( International Organization for Standardization, ISO)批准为国际标准。

图片

转义字符

为啥叫转义字符呢,就是他本身己有一个字符的意义,我们给他另外一个别的意义。转意字符常起到控制的作用。

图片

图片

如1:输出'f'字符的ASCII值、

#include int main(){ char m='f'; printf("%c = %d", m, m); return 0; }

图片

如2:char的数据可以直接和其它数值进行运算

#include int main(){ char m='f'; // 1. 读取m的ASCII值 2. 和5相加 3.赋值给m m += 5; // m = m + 5; printf("%c = %d", m, m); return 0; }

图片

如3: 将小写的字符转成大写字符

#include int main(){ char m='f'; m -= 32; // 97-65=32 printf("%c = %d", m, m); return 0; }

图片

如4: 定义不同整数类型的变量,并打印它所占的大小

#include int main(){ char a = 10; short int b = 10; int c = 10; long int d = 10; // %d 十进制整数类型, %ld 十进制的长整型 printf("a %d size is %ld B\n", a, sizeof(a)); printf("b %d size is %ld B\n", b, sizeof(b)); printf("c %d size is %ld B\n", c, sizeof(c)); printf("d %ld size is %ld B\n", d, sizeof(d)); return 0; }

图片

1.2.2.整型数表示范围

图片

图片

1.2.1实型(浮点型)::

浮点数是一种用于表示带有小数点的数值的数据类型。它由三个主要部分组成:符号、阶码和尾数。

首先是符号位,用来表示浮点数的正负。符号位为0表示正数,为1表示负数。

接下来是阶码(指数),它表示浮点数的指数部分。阶码确定了浮点数的数量级。它通常使用二进制表示,可以是正数、负数或零。

最后是尾数(有效数字),它表示浮点数的小数部分。尾数通常使用二进制表示,它决定了浮点数的精度和范围。

浮点数的表示方法通常遵循IEEE 754标准,该标准定义了单精度(32位)和双精度(64位)浮点数的表示方式。单精度浮点数使用32位来存储,双精度浮点数使用64位来存储。

需要注意的是,浮点数是一种近似表示,而不是精确表示。由于浮点数的存储空间有限,一些数值可能无法精确表示,会存在舍入误差。因此,在进行浮点数计算时,需要注意处理舍入误差可能带来的影响。

float 单精度, 4B, 常量表示:0.1f, 1.25f double 双精度, 8B, 常量表示:0.1, 1.25, 3.333, 12e-3, 12e3

图片

#include int main(){ float x=1.256f; double y=23e-4; float z = 1e2; // %f float or double \t is , \n 换行 printf("%f\t%f\n", x, y); // 标准输出的小数位:6位 // %.nf n保留的小数位, 如果n+1位大于等于5则进位 printf("%.2f\t%.3f\n", x, y); printf("%.1f\n", z); return 0; } #include int main(){ float x=1.256f; double y=23e-4; float z = 1e2; // %f float or double \t is , \n 换行 printf("%f\t%f\n", x, y); // 标准输出的小数位:6位 // %.nf n保留的小数位, 如果n+1位大于等于5则进位 printf("%.2f\t%.3f\n", x, y); printf("%.1f\n", z); return 0;}

图片

1.2 构造类型

由若干个相同或不同类型数据构成的集合,这种数据类型被称为构造类型。包含:数组、结构体 struct、共用体union、枚举enum

1.3 类型转换

自动类型转换

原则: 小字节类型转成大字节类型, 保证数据的精准不会丢失。

由编译自动完成。

图片

强制类型转换

原则上:大字节类型转小字节类型, 可能存在丢失数据情况。

由用户(开发人员)自己转换。

如1:

#include int main(){ int a=10; float b=a; printf("%d -> %f\n", a, b); b = 12.115567f; // 强制类型转换 (short) b short c = (short) b; // float 4B -> short 2B printf("short %d\n", c); return 0; }

图片

更多内容和学习资料,敬请关注微信公众号: 

图片



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有