c语言的四种数据类型(C语言数据类型)

生活中,我们最常见到的各种瓶子,瓶子既有大小、又有类型,不同的瓶子,容积不同,用途也不同;类比到编程世界,这就是我们接下来要谈的数据类型,不同的数据类型,用途不同,能够装的数据大小也不同,接下来我们就来聊聊关于c语言的四种数据类型?以下内容大家不妨参考一二希望能帮到您!

c语言的四种数据类型(C语言数据类型)

c语言的四种数据类型

数据类型知多少?

生活中,我们最常见到的各种瓶子,瓶子既有大小、又有类型,不同的瓶子,容积不同,用途也不同;类比到编程世界,这就是我们接下来要谈的数据类型,不同的数据类型,用途不同,能够装的数据大小也不同。

整型

C语言中的整型可以分为两大类:有符号整型和无符号整型,反映在计算机内部,也就是二进制位最高位不同,负数为1,正数为0,但是你们有知道计算机内部数的表示是用什么样的形式表示的吗?暂时按住不讲,有兴趣的小伙伴,联系我,我们来探讨一下~

不知道有没有小伙伴,对C语言中的这些类型有没有好奇过,为什么是int表示整数类型呢?这到了考验大家的英语水平来了,英语中integer单词表示整数,C语言是老外发明的,因此大多命名都是采用英文的缩写,不过这对我们学习编程无伤大雅,大家了解就好~但是多知道一点,也没关系的哈.

废话不多说,short int从单词上也能猜到代表短整型,为什么短,因为它长得矮呗,哈哈~,开个玩笑,因为它仅仅能表示装的下2个字节,每个字节8个bit,因此它也仅仅能表示16个bit。下面我们用程序来看一下各整型能表示的字节个数。

#include<stdio.h> int main(){ printf("sizeof(unsignedshortint):%d\n",sizeof(unsignedshort)); printf("sizeof(short int): %d\n", sizeof(short)); printf("sizeof(unsignedint):%d\n",sizeof(unsigned int)); printf("sizeof(int): %d\n", sizeof(int)); printf("sizeof(unsignedlong):%d\n",sizeof(unsignedlong)); printf("sizeof(long int): %d\n", sizeof(long int)); printf("sizeof(unsignedlonglong):%d\n",sizeof(unsignedlonglong)); printf("sizeof(long long): %d\n", sizeof(long long)); return0; } answer: sizeof(unsigned short int): 2 sizeof(short int): 2 sizeof(unsigned int): 4 sizeof(int): 4 sizeof(unsigned long): 4 sizeof(long int): 4 sizeof(unsigned long long): 8 sizeof(longlong):8

short int能表示范围: -32768~32767;unsigned short int:0~65535;对于其他类型,你知道它的表示范围是多少吗?知道是什么怎么计算出来的吗?不懂的赶紧来私聊我~

字符型

字符型用char表示,仅能装的下8个bit,1个字节。有符号字符范围为-128~127,无符号字符为0~255。

浮点类型

浮点类型有三种类型,float、double及long double,其区别主要是精度范围不同,其中float的精度有效位6,double的精度有效位15位,long double的精度有效位为19。那这三种类型,需要多少字节呢?我们同样的可以使用sizeof来获取他们的大小。

#include<stdio.h> int main() { printf("sizeof(float):%d\n", sizeof(float)); printf("sizeof(double):%d\n", sizeof(double)); printf("sizeof(longdouble):%d\n",sizeof(longdouble)); return 0; } sizeof(float):4 sizeof(double):8 sizeof(long double):16

空类型

空类型使用符号void表示,该类型比较简单。字面意思,什么都不表示。对于函数返回值,表示无返回值。用在函数参数上,表示无参数。用在指针上,表示地址,不指定数据类型,可以强制类型转换为指向任意大小数据结构的指针。

枚举类型

枚举类型使用enum表示。企业业务开发中,一般用该类型指代不同的数值常量或类型,例如要表示路由器中不同的端口。

typedef enum { PORT_VOID = 0, PORT_OIU = 1, PORT_TRUNK = 2, // 新增端口从此处开始... PORT_TOTAL = 255, } PORT;

派生类型指针类型

指针是编程中专业术语,一般在C/C 语言中出现,对于刚接触编程的小朋友,概念比较抽象,不太好理解。我们可以简单的理解为小区中房子的门牌号,就是方便寻址抽象出来的概念。

根据数据类型不同,可以有不同的指针类型,例如char *,int *,float *。

数组类型

如果我们还拿瓶子举例,夏天很热,咸鱼小明去超市买了一提矿泉水(12瓶),那么这12瓶类比在编程中,就表示数组,相同类型多个数据结构,能够连续存储多个数据的类型。例如:int array[12] 表示大小为12的整型数组,能够存储12个整型元素。

结构体类型

编程语言是为了解决现实中的问题,数组已经很强大,但他也有缺陷,不能装不同的类型数据,此时,结构体就上场,结构体就是为了让我们定义自己的数据结构类型,使用关键词struct标识。例如我们可以定义学生结构如下:

struct Student { char name[10]; // 姓名 char sex[2]; // 性别 char studyNo[10]; // 学号 float height; // 身高 float weight; // 体重 short grade;// 年级 short class; // 班级 char tel[12]; // 联系方式 } STU;

共用体类型

该类型使用关键词union标识,共用体使用场合其实并不多,在企业中开发,我接触比较多的就是协议开发中,会涉及的多一些,一般就是多个字段在不同场景下只能出现一个,此时我们可以用共用体,节省内存,它一般与struct结合使用,单独使用意义不大。

typedef Struct{ int data1; float data2; union { char data3; double data4; }; char data[4]; } ST;

函数类型

自定义函数类型一般要结合typedef来使用,我们可以定义某种类型声明的函数。例如

// 定义了返回值为空,函数参数为空的函数类型func; typedef void (*func) (void); // 定义了返回值为int,函数具有两个int参数的函数类型func1; typedef int (*func1)(int,int); // 使用 void getValue(void); func = &getValue; func();

每日猿码

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页