c语言常用三种数据类型(C语言数据类型)
c语言常用三种数据类型(C语言数据类型)枚举类型使用enum表示。企业业务开发中,一般用该类型指代不同的数值常量或类型,例如要表示路由器中不同的端口。#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表示,该类型比较简单。字面意思,什么都不表示。对于函数返回值,表示无返回值。用在函数参数上
数据类型知多少?生活中,我们最常见到的各种瓶子,瓶子既有大小、又有类型,不同的瓶子,容积不同,用途也不同;类比到编程世界,这就是我们接下来要谈的数据类型,不同的数据类型,用途不同,能够装的数据大小也不同。
整型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();
每日猿码