C语言基本数据类型笔记整理(整型、实型/浮点型、字符型、枚举型、构造类型、指针类型、空类型)

一、整型

①有符号整型

有符号整型关键字变量声明实例字符长度
有符号短整型shortshort int a; 或者 short a;2 byte
有符号基本整型intint a;4 byte
有符号长整型longlong int a; 或者 long a;4 byte
有符号长长整型long longlong long int a; 或者 long long a;8byte

②无符号整型

无符号整型关键字变量声明实例字符长度
无符号短整型unsignedunsigned int a;4 byte
无符号基本整型unsignedunsigned long b;8 byte
无符号长整型unsignedunsigned short c;16 byte

二、实型

又称“浮点型”

实型关键字变量声明实例字节长度
单精度实型floatfloat a;4byte
双精度实型doubledouble a;8byte
长双精度实型long doublelong double a;12byte

三、字符型

数据类型关键字变量声明实例字节长度
字符型charchar a;1byte

注意: 字符型只是描述单个字符,C语言中没有提供字符串的数据类型,因此字符串的存取要用字符串数组来实现。

四、枚举型

枚举即”一一例举“之意,当某些量仅由有限个数据值组成时,通常用枚举类型来表示。
枚举数据类型描述的是一组整型值的集合,需用关键字 enum 来定义

enum response{no,yes,none};//声明了名为response的枚举变量,它可能取值no、yes、none
enum response answer;//定义了一个response枚举类型变量answer
//使用方式
//1. 给变量answer赋值,只能是定义的no、yes、none三个值之一
answer=no;
//2. 可在条件语句中使用
if(answer==yes){
	...
}

五、构造类型

构造类型是由基本数据类型按一定规则组合而成的复杂数据类型,包括 数组型结构体类型共用体类型

①数组

数组是由相同类型的数据构成的一种数据结构,适合于对具有相同属性的数据进行批处理。

int score[10];
char name[20];

②结构体

结构体将不同类型的数据成员组织到统一的名字之下,适合对于关系紧密、逻辑相关、具有相同或不同属性的数据进行处理。

struct date{
	int year;
	int mouth;
	int day;
};

③共用体

共用体也能表示逻辑相关的不同类型的数据集合,但其数据成员是情形互斥的,每一时刻只有一个数据成员起作用。

union{
	int single;
	char spouseName[20];
	struct date divorcedDay;
};

补充:结构体变量内存分配问题

  • 结构体类型所占内存的字节数并非是所有成员所占内存字节的总和,它不仅与所定义的结构体类型有关,还与计算机系统本身有关。
  • 计算结构体所占内存的字节数: sizeof() 方法 使用 sizeof(变量名) 的形式可以计算一个变量所占内存的字节数。

六、指针类型

指针类型是一种更加灵活的数据类型,用来表示内存地址,具有指针类型的变量,称为指针变量

//1. 指针变量的类型声明
int *ptr;
char *pStr;
//2. 指针变量的初始化
ptr=&a;
pStr=&b;//&为取地址运算符,用于获取变量a的地址(a变量在内存中所占空间的首地址)

注意: 指针变量中存放的虽然是变量的地址值,二者在数值上相等,但在概念上变量的指针并不等同于变量的地址。变量的指针是一个常量,不能对其赋值,而变量的指针是一个变量,其值是可以改变的。

七、空类型

空类型是从语法完整性角度给出的数据类型,表示不需要数据值,因而没有类型,其一般使用关键字void描述。

void Sort(int array[],int n);
void *malloc(unsigned int size);
  • 9
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1. Java基本数据类型C语言的异同 相同点:Java和C语言都有基本数据类型,如整型浮点型字符等。 不同点: - Java的基本数据类型是平台无关的,而C语言基本数据类型是依赖于底层计算机的,不同的计算机可能有不同的数据类型长度。 - Java有布尔类型(boolean),而C语言没有。 - Java的基本数据类型都是对象,而C语言基本数据类型不是对象。 - Java的整型默认是有符号的,而C语言整型默认是无符号的。 - Java的浮点型默认是双精度的,而C语言浮点型默认是单精度的。 2. 泛枚举的各自特点 泛: - 泛可以让代码更加通用、安全和易读。 - 泛可以让我们在编译期间就发现类型错误,而不是在运行期间发现。 - 泛可以避免强制类型转换,提高代码的可读性和可维护性。 枚举: - 枚举可以让代码更加清晰、易读、易维护,避免使用硬编码的常量。 - 枚举可以限制变量的取值范围,避免出现不合法的值。 - 枚举可以实现单例模式,保证在整个应用程序中只有一个实例。 - 枚举可以实现比较操作,方便进行排序和查找等操作。 总的来说,泛枚举都可以让代码更加清晰、易读、易维护,但是它们的应用场景不同。泛适用于需要处理不同类型数据的情况,而枚举适用于需要限制变量取值范围或者需要实现单例模式的情况。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值