C语言基础-day05

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


数据类型

  • C语言中的数据类型分类为四种:分别是基本类型、构造类型、指针类型、空类型
  • 所谓数据类型就是通过定义的变量性质,表现的形式,所占据存储空间大小及构造特点来划分。
  • 所以我们在编程中,明确数据的类型是很重要的,它有助于保证数据的正确性和程序的健壮性。

字节(知识扩展)

字节是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符。通常:一个英文字母占一个字节,一个中文字符占两个字节;

  • 位(bit,b):是最小的存储单位,也称"比特"。只能取0,1两种状态。
  • 字节 (Byte,B):1Byte = 8bit ,
  • 千字节 (KiloByte,KB)1KB=1024B,用于表示文件的大小。
  • 兆字节 (MegaByte,MB)1MB=1024KB,用于表示存储设备。
  • 吉字节 (GigaByte,GB)1GB= 1024MB
  • 太字节 (TeraByte,TB)1TB= 1024GB,用于表示大容量存储设备。

基本类型

基本类型是编程语言的数据单元,用于存储不同的数据类型。它们是编程语言中最基本的元素,用于表示不同类型的数据.

基本类型
整型
短整型_short
整型_int
长整型_long
浮点型
单精度_float
双精度_double
字符型
字符型_char

整型类型

整型类型:标准整数类型的存储大小和取值范围的细节:

修饰符数据类型存储大小取值范围
signedshort2 字节-32,768 到 32,767
unsignedshort2 字节0 到 65,535
signedint2 或 4 字节-2,147,483,648 到 2,147,483,647
unsignedint2 或 4 字节0 到 65,535 或 0 到 4,294,967,295
signedlong4 字节-2,147,483,648 到 2,147,483,647
unsignedlong4 字节0 到 4,294,967,295
什么是signed和unsigned

整型数据可以被修饰符 signedunsigned 修饰。

  • signed 修饰的整型称为有符号的整型。
  • unsigned 修饰的整型称为无符号的整型。
signed和unsigned区别
  • 无符号整型可以存放的正数范围比有符号整型的大一倍
  • 默认情况下,整型数据都是有符号的,因此 signed 修饰符可以省略。
打印整型数据类型(案例)

打印出short,int,long数据类型大小以及类型的最大值和最小值。
在这里插入图片描述

解题思路
  • 在这个代码中,我们首先需要包含了stdio.hlimits.h头文件。
  • 使用limits.h头文件:是一个标准库的头文件,包含了各种整数类型的属性,如最小值、最大值和位数等。通过使用这个头文件,可以获取关于整数类型的更多信息,以便在编写代码时做出正确的决策。
  • 使用 stdio.h 头文件:是 一个标准库头文件,这个头文件包含了 C 语言标准库中关于输入和输出的函数、宏和类型。
  • 在main函数中,我们使用printf函数打印。
  • 在main函数中,我们使用sizeof 运算符得到类型或变量在特定平台上的准确大小。

注意

  • %d 格式化符号用于输出使用,这可以用来输出整型变量。
  • %lu 用于表示 unsigned long 类型整数的一个格式说明符。在 printf 和 scanf 函数中,它用于以特定的格式输出或读取 unsigned long 类型的值。
代码内容
#include <stdio.h>
#include <limits.h>

int main()
{
   printf("=================short=======================\n");
   printf("short 存储大小 : %lu \n", sizeof(short));
   printf("short 最小值: %d\n", SHRT_MIN );
   printf("short 最大值: %d\n", SHRT_MAX );
   printf("===================int=====================\n");
   printf("int   存储大小 : %lu \n", sizeof(int));
   printf("int   最小值: %d\n", INT_MIN );
   printf("int   最大值: %d\n", INT_MAX );
   printf("===================long=====================\n");
   printf("long  存储大小 : %lu \n", sizeof(long));
   printf("long  最小值: %d\n", LONG_MIN );
   printf("long  最大值: %d\n", LONG_MAX );
   return 0;
}

短整型(short)

什么是短整型
  • 短整型(short)是一种整数类型,通常用于表示相对较小的整数值。
  • 通常占用2个字节(16位),范围从-32768到32767。
  • 它是一种紧凑的数据类型,适用于存储较小范围的整数值。
  • 由于其占用空间较小,适用于节省内存的场合,如数组、结构体等数据结构中的元素。(后期会学)
创建短整型变量并赋值 (案例)
  • 输出样式

在这里插入图片描述

解题思路

首先声明了一个名为num的短整型变量,然后给它赋值为2227。
使用printf函数打印出这个变量的值。
注意:在printf函数中,我们使用了%d格式说明符来指定要打印的是一个短整型变量。

代码内容
#include <stdio.h>
 
int main() {
    short num; // 声明一个短整型变量
    num = 2227; // 赋值给num
    printf("输出short的值: %d\n", num); // 打印num变量的值
    return 0;
}

注意:使用短整型(short)可能会导致精度损失或溢出。
因此,选择适当的数据类型是编程中的一个重要方面,以确保数据的准确性和程序的正确性。

整型(int)

什么是整型
  • 基本整型(int)是一种整数类型,通常用于表示整数。
  • 通常占用4个字节(32位),范围从-2147483648到2147483647。
  • 它是比较大的数据类型,适用于存储较大的整数值。
  • 其占用空间较大,适用于需要更高精度的计算或表示更大范围的整数值的场合。
创建整型变量并输出 (案例)
  • 输出样式

在这里插入图片描述

解题思路
  • 首先声明了一个名为num的整型变量,然后给它赋值为6678951。
  • 使用printf函数打印出这个变量的值。

注意:在printf函数中,我们使用了%d格式说明符来指定要打印的是一个整型变量。

代码内容
#include <stdio.h>
 
int main() {
    int num; // 声明一个整型变量
    num = 6678951; // 赋值给num
    printf("输出int的值: %d\n", num); // 打印num变量的值
    return 0;
}

长整型(long)

什么是长整型
  • 长整型(long)是一种整数类型,通常用于表示较大的整数值。
  • 通常占用4个字节或8个字节,32位平台上,范围从-2147483648到2147483647;
  • 具体取决于平台和编译器。在64位平台上,范围更大。
  • 它是比较大的数据类型,适用于存储较大的整数值。
  • 与 int 类型相比,long 类型通常占用更多的内存空间。
创建长整型变量并输出 (案例)
  • 输出样式
    在这里插入图片描述
解题思路
  • 首先声明一个num的长整型变量,然后给它赋值为:1234567890。
  • 使用printf函数打印出这个变量的值。

注意:在printf函数中,我们使用了%ld格式说明符来指定要打印的是一个长整型变量。

代码内容
#include <stdio.h>
 
int main() {
    long num; // 声明一个长整型变量
    num = 1234567890; // 赋值
    printf("输出long的值: %ld\n", num); // 打印变量的值
    return 0;
}

浮点类型

浮点类型:标准浮点类型的存储大小、取值范围和精度的细节:

数据类型存储大小取值范围小数精度
float4 字节.12E-38 到 3.4E+386 位有效位
double8 字节2.3E-308 到 1.7E+30815 位有效位
long double16 字节3.4E-4932 到 1.1E+493219 位有效位
打印浮点数据类型(案例)

打印出float、double、long double数据类型大小以及类型的最大值和最小值以及精度值。
在这里插入图片描述

解题思路
  • 在这个代码中,我们首先需要包含了stdio.hfloat.h头文件。
  • 使用 stdio.h 头文件:是 一个标准库头文件,这个头文件包含了 C 语言标准库中关于输入和输出的函数、宏和类型。
  • 使用float.h 头文件:是 一个标准头文件,这个头文件包含了关于浮点数的一些宏定义和类型定义。
  • 在main函数中,使用printf函数打印。
  • 在main函数中,使用sizeof 运算符得到类型或变量在特定平台上的准确大小。
  • 使用FLT_MAX、DBL_MAX和LDBL_MAX宏来获取浮点类型的最大值。
  • 使用FLT_MIN、DBL_MIN和LDBL_MIN宏来获取浮点类型的最小值。
  • FLT_DIG、DBL_DIG和LDBL_DIG宏来获取每种类型的精度值。

注意

  • %lu 用于表示 unsigned long 类型整数的一个格式说明符。在 printf 和 scanf 函数中,用于以特定的格式输出或读取 unsigned long 类型的值。
  • %f是用于格式化输出浮点数(float)的格式说明符。当你在printf函数中使用%f,它会将后面的浮点数参数按照默认的格式打印出来。
  • %Lf 是 用于表示 long double 类型浮点数的一个格式说明符。在 printf 和 scanf 函数中,它用于以特定的格式输出或读取 long double 类型的值。
代码内容
#include <stdio.h>
#include <float.h>
 
int main() {
	printf("===================float=====================\n");
    printf("float存储大小:%zu字节\n", sizeof(float));
    printf("float  最大值:%f\n", FLT_MAX);
    printf("float  最小值:%f\n", FLT_MIN);
    printf("float  精度值: %d\n", FLT_DIG);
    printf("===================double=====================\n");
    printf("double存储大小:%zu字节\n", sizeof(double));
    printf("double  最大值:%f\n", DBL_MAX);
    printf("double  最小值:%f\n", DBL_MIN);
    printf("double  精度值: %d\n", DBL_DIG);
    printf("===================long double=====================\n");
    printf("long double存储大小:%zu字节\n", sizeof(long double));
    printf("long double  最大值:%Lf\n", LDBL_MAX);
    printf("long double  最小值:%Lf\n", LDBL_MIN);
    printf("long double  精度值: %d", LDBL_DIG);

    return 0;
}

说明
在大多数编译器和平台上,long double的精度通常高于double,至少是18位左右。但是,具体精度取决于编译器和平台,可能会有所不同。可以使用特定的宏(如LDBL_DIG)在<float.h>头文件中获取long double类型的精度值。

单精度(float)

创建单精度变量并输出 (案例)
  • 输出样式

在这里插入图片描述

解题思路
  • 首先声明一个pi的单精度变量,然后给它赋值为:3.14159。
  • 使用printf函数打印出单精度变量的值,且只打印小数点后两位数。

注意

  • 在printf函数中,我们使用了%f格式说明符来指定要打印的是一个单精度变量。
  • 使用printf函数和%.nf格式说明符来控制浮点数的精度。其中,n表示小数点后的位数。
代码内容
#include <stdio.h>
 
int main() {
	float pi; // 声明一个单精度变量
    pi = 3.1415926f;// 赋值给pi 
    printf("输出float的值: %.2f", pi); // 打印单精度变量的值,且只要后面两位小数 
    return 0;
}

双精度(double)

创建双精度变量并输出 (案例)
  • 输出样式
    在这里插入图片描述
解题思路
  • 首先声明一个pi的双精度变量,然后给它赋值为:3.1415926535897。
  • 使用printf函数打印出单精度变量的值,且只打印小数点后两位数。

注意

  • 在printf函数中,我们使用了%lf格式说明符来指定要打印的是一个双精度变量。
  • 使用printf函数和%.nf格式说明符来控制浮点数的精度。其中,n表示小数点后的位数。
代码内容
#include <stdio.h> 
int main() 
{
	double pi; // 声明一个单精度变量
    pi = 3.1415926535897;// 赋值给pi 
    printf("输出double的值: %.6lf", pi); // 打印双精度变量的值,且只要后面六位小数 
    return 0;
}


字符类型

修饰符数据类型存储大小存储范围
char1 字节-128 到 127 或 0 到 255
unsignedchar1 字节0 到 255
signedchar1 字节-128 到 127
  • 存储大小:char 类型通常占1个字节,但由于是依赖于平台实现的,确切的存储大小可能有所不同。
  • 取值范围:char 类型可以表示一个字符的整数值。其取值范围依赖于具体的字符集和编码方式。
  • 在ASCII码中,char 类型的取值范围是-128 到 127。
  • 精度:char 类型用于表示单个字符,其精度取决于字符集和编码方式。
打印字符数据类型(案例)

打印出char数据类型大小以及精度值。
在这里插入图片描述

解题思路
  • 在这个代码中,我们首先需要包含了stdio.hlimits.h头文件。

  • 使用 stdio.h 头文件:是 一个标准库头文件,这个头文件包含了 C 语言标准库中关于输入和输出的函数、宏和类型。

  • 使用limits.h头文件:是一个标准库的头文件,包含了各种整数类型的属性。通过使用这个头文件,可以获取关于整数类型的更多信息,还可以获取字符类型数据的位数,以便在编写代码时做出正确的决策。

  • 在main函数中,使用printf函数打印。

  • 在main函数中,使用sizeof 运算符得到类型或变量在特定平台上的准确大小。

  • 使用CHAR_BIT宏来获取字符类型数据的位数。

注意
%d 是格式说明符,用于表示十进制整数。当你在printf函数中使用%d时,它会期望后面跟着一个整数值,并将该整数值格式化为十进制形式。

代码内容
#include <stdio.h>
#include <limits.h>
int main() {
    printf("char 字符大小: %lu bytes\n", sizeof(char));
    printf("The number of bits in char type is: %d\n", CHAR_BIT);
    return 0;
}

字符型(char)

创建字符型变量并输出 (案例)
  • 输出样式
    在这里插入图片描述
解题思路
  • 首先声明一个charA的字符型变量,并将其初始化为大写字母A。
  • 使用printf函数打印出字符型变量的值。
  • 使用%c和%d格式说明符打印字符和其对应的ASCII码值

注意

  • 在printf函数中,我们使用了%c格式说明符用于打印字符型变量的值。
  • %d 是格式说明符,用于表示十进制整数。当你在printf函数中使用%d时,它会期望后面跟着一个整数值,并将该整数值格式化为十进制形式。
代码内容
#include <stdio.h>
 
int main() 
{
    char charA;  // 声明一个字符变量
	charA = 'A'; // 定义初始化为大写字母A
    printf("定义初始化字符值为: %c 对应的ASCII码值 %d\n", charA,charA); // 打印字符初始化的变量值,使用%c和%d格式说明符打印字符和其对应的ASCII码值
    return 0;
}

总结

以上就是今天要讲的内容,本文介绍了什么是字节,数据类型中基本类型:整型类型:短整型(short)、整型(int)、长整型(long)。浮点类型:单精度(float)、双精度(double),字符型(char)的使用和案例。

  • 38
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

bit_Simona

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

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

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

打赏作者

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

抵扣说明:

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

余额充值