一、数据类型的分类
在本章节我们之讲解基础的数据类型,因为后续的数据类型将会单独对此讲解,常考的为基本数据类型,数组,函数,指针这几种类型!其它类型作为了解,认识即可
二、整型类型
此处对整数类型的讲解排除字符型和布尔型,它们单独拉出讲解,且我不喜欢废话讲解,我直接列表加代码讲解!因为这东西概念都是死的,只有认识后在你们多次练习刷题中才能汲取到使用的经验,因为光靠文字是理解不完的!
类型 | 字节数 | 取值范围 |
[signed] int(signed为默认有符号数,后续没写代表默认前面有)主要我打字手疼,钓鱼被鱼钓了 | 4 | -2³¹~2³¹-1 |
unsigned int(usgned写在类型前为无符号数) | 4 | 0~2³²-1 |
short [int] | 2 | -2¹⁵~2¹⁵-1 |
unsigned short [int] | 2 | 0~2¹⁶-1 |
long [int] | 4 | -2³¹~2³¹-1 |
unsigned long [int] | 4 | 0~2³²-1 |
long long [int] | 8 | -2⁶³~2⁶³-1 |
unsigend long long [int] | 8 | 0~2⁶⁴-1 |
#include <stdio.h>
int main() {
//输出不同类型在内存中所占空间的大小
printf("char类型字节数:%zu\n", sizeof(char));
printf("short类型字节数:%zu\n", sizeof(short));
printf("int类型字节数:%zu\n", sizeof(int));
printf("long类型字节数:%zu\n", sizeof(long));
printf("long long类型字节数:%zu\n", sizeof(long long));
printf("float类型字节数:%zu\n", sizeof(float));
printf("doubel类型字节数:%zu\n", sizeof(double));
//sizeof()是一个编译时运算符,用于计算对象或类型所占用的内存空间大小,单位是字节(byte)
//使用 %zu 可以确保 printf 能够正确处理 size_t 类型的值。
long int a; //这就是在long [int]前的[int]可以存在也可以不存在
printf("%zu", sizeof(a));
/*
在 C 语言中,long int 和 long 在大多数情况下是相同的,它们都表示长整型。
然而,在一些特定的编译器和平台上,可能会有细微的差别。
通常,long 至少是 32 位,而 long int 明确地指定了这是一个长整型整数。
*/
return 0;
}
三、字符型数据
- 定义:字符变量使用类型符char定义字符变量。它也可以使用signed和unsigned修饰符表示符号属性;用于表示单个字符
类型 | 字节数 | 取值范围 |
signed char | 1 | -2⁷~2⁷-1 |
unsigned char | 1 | 0~2⁸-1 |
#include <stdio.h>
int main() {
char n = 'p'; //单引号定义的是一个单个的字符
printf("%d\t%c",n,n); //%d将n对应的字符转化为对应的ascll码
char str[]="A"; //双引号定义的是一个数组
return 0;
}
-
单引号括住的是单个字符,双引号括住的是一个字符序列(字符串)。
-
存储方式不同:单个字符在内存中只占用一个字节来存储其 ASCII 值;而字符串除了存储字符本身,还需要额外存储一个结束标志
'\0'
。
数组在后面细讲,此处只做个区别介绍!要赋值单个字符切记使用单引号
四、浮点型数据
- 浮点型数据是用来表示具有小数点的实数的
类型 | 字节数 | 有效数 | 数值范围 |
float(单精度) | 4 | 6 | 0以及1.2x10⁻³⁸~3.4x10³⁸ |
double(双精度) | 8 | 15 | 0以及2.3x10⁻³⁰⁸~1.7x10³⁰⁸ |
long double(长双精度) | 8 | 15 | 0以及2.3x10⁻³⁰⁸~1.7x10³⁰⁸ |
注:浮点类型它是没有无符号和有符号即unsigned和signed
float aa = 2.1234567;
double bb = 1.1234567;
printf("%.15f\t%.15f\n",aa,bb);
五、布尔类型
- 在C语言中并没有内置的布尔类型,在整型中0就是false,非0就是true(在循环,分支章节详解);
- 或使用#include <stdbool.h>文件中的内置布尔类型,true就是真,false就是假
#include <stdio.h>
#include <stdbool.h> //调用bool类型的文件
main(){
bool t=true; //布尔类型中true表示整型1
bool f=false; //布尔类型中false表示整型0
printf("%d\t%d",t,f)
}
标签:字符,字节数,int,数据类型,long,3.2,专升本,printf,类型
From: https://blog.csdn.net/weixin_51263756/article/details/141183435