首页 > 代码库 > C语言之数据类型
C语言之数据类型
---恢复内容开始---
在C语言中我们的数据类型分为以下几大类:
(1)基本数据类型:int, float,double,char,_Bool(C99中新加的),枚举enum;
很多朋友对于enum被定义为是基本类型可能会有些迷惑,但是我们都知道枚举类型的特殊之处就是总能把数据变化为整形数据,
我们可以认为枚举就是一种特殊定义过的整形组合。
(2)构造数据类型:数组,结构体(struct),共用体(union)
1.数组的基本格式:数据类型 数组名 【数组size】 ;我们可以这样理解它:数组名相当一个标签告诉我们开辟的空间的名称,我们可以通过这个标签去操纵一片连续内存空间,
而数据类型和数组大小则是控制开辟的空间的大小。比如int型的大小为10的数组开辟空间就是4*10;相当于开辟了是个整形数据的大小。
2.结构体的格式: struct 结构体名
{
各种类型的数据;
};
结构体是C++学习的先锋军,简单的封装是结构体在c语言中的一个亮点。结构体的学习综合性比较强,因为他的组成元素可以是各种类型变量和函数。
系统分配的内存是又其中元素决定,以四个字节位一个小块,四个字节满了以后在开辟,如果一块剩余的空间不能放下就空下另起一块。这样就节省了
很多内存。
3.联合体的格式: union 共用体名
{
各种类型的数据;
};
共用体也是可以存储各种类型的数据,与结构体不同的是它存储的方式很大程度上只是为了节约内存,它以各元素中占用最大的元素为该公用体的内存占用。
但在调用时只能调用其中某个元素,同一时间片不能有多个元素同时被调用,所以对它不熟悉的话还是不要用的好。
(3)指针:是C语言的精华和糟粕所在,任何东西都像一把双刃剑。(对于指针我会单独说的,希望大家指正)。所有的指针都是4字节大小,存放的是指向空间的首地址。
(4)void:他不能直接去声明变量,一般有两种用法:1.函数入参和返回值的限制,2.修饰指针时,该指针可以强制转换成各种类型的指针。
我们都知道操作系统在我们的程序运行时为我们开辟了大部分内存空间(静态变量是编译和链接是开辟的),一个函数结束是它所申请的动态变量就被系统自动回收。
我们可以形象的看成分配空间的过程就是贴标签的过程,表明这块内存属于谁.而系统回收的过程就是去掉标签,让这块内存变成无主之物。
那么数据类型在这一过程中有扮演了怎样的角色呢?其实数据类型就是告诉我们是用鱼缸放鱼还是用花盆养花的一个过程,鱼草的生活空间大小和方式就被我们决定了。
所以说数据类型是我们与系统进行交流的第一步。
---恢复内容结束---
C语言之数据类型