You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
int i——定义整形变量i
int *p——p为指向整型变量的指针变量
int a[n]——定义整型数组a,它有n个元素
int *p[n]——定义指针数组p,它由n个指向整型数据的指针元素组成
int (*p)[n]——p为指向含n个元素的一维数组的指针变量
int f()——— f为返回整数型函数值的元素
int *p()——- p为返回一个指针,该指针指向整型数据 或 整形数组
int (*p)() —–p为指向函数的指针,该函数返回一个整数值
int **p——p是一个指针变量,它指向一个指向整数型数据的指针变量
数组类型:是由相同基本类型若干个元素组织在一起数据,它们有先后顺序,也可以按这个顺序对这些元素访问。如 int a[10],共有 10 个元素,第个元素的类型都相同,都为整型。这 10 个元素,按顺序分别是 a[0]、a[1]、a[2]、a[3]、a[4]、a[5]、a[6]、a[7]、a[8]、a[9]。
结构体类型:在 C 语言中,结构体(struct) 指的是一种数据结构,是 C 语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。在C语言中,定义一个结构的一般形式为:
深入学习 C 语言时,有必要先了解一下数据类型的概念,以及它们之间的混合运算与类型转换。本篇文章便是根据《C语言程序设计教程》和在线翻阅资料后整理而出。(练习题将逐步更新)
一、概述
程序所能处理的基本数据对象被划分成一些组或一些集合。它们都采用同样的编码方式,对它们能做同样的操作。把程序中具有这样性质的集合,成为数据类型。CPU 对不同的数据类型提供了不同的操作指令。
C 语言中的类型按其组成可以分为简单类型和构造类型,按是否预定义了类型名字和值集可以分为基本类型和非基本类型,按是否加了类型限定符可以分为限定类型和非限定类型。
用 ProcessOn 作图,C 语言数据类型如下:
二、类型修饰符
除 void 类型外,基本数据类型之前都可以加各种类型修饰符,类型修饰符有如下四种:
三、各种数据类型介绍
1. 基本数据类型
以下各数据类型字长均指32位操作系统下,可用printf("%d",sizeof(数据类型名));进行测试。具体字长由具体编译器决定,但确定的关系是:sizeof(short)≤sizeof(int)≤sizeof(long)
整型:整形包括短整型、整形和长整形
short [int] 2byte -32768~32767
unsigned short [int] 2 byte 0~65535
int /signed [int] 4 byte -2147483648~2147483647
unsigned [int] 4 byte 0~4294967295
long [int]/signed long [int] 4 byte -2147483648~2147483647
unsigned long [int] 4 byte 0~4294967295
long long [int] 8 byte 0~18446744073709552000
浮点型
字符型
2. 指针类型:
有关指针的数据类型
延伸可参考:基于指针的数据类型与指针运算小结
3. 构造类型:struct
C 语言构造类型分为:数组类型,结构类型和共用体类型
延伸可参考:C语言结构体(struct)常见使用方法
几个不同的变量共同占用一段内存的结构,在C语言中,被称作“共用体”类型结构,简称共用体。注:在某些书籍中可能称之为“联合体”,但是“共用体”更能反映该类型在内存的特点。在C语言中,定义一个共用体结构的一般形式为:
4. 空类型:void
常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明。具体参考 void 百科
四、不同类型数据间的混合运算与类型转换
1.自动类型转换
在C语言中,自动类型转换遵循以下规则:
2. 强制类型转换
强制类型转换一般格式如下:
(类型名)(表达式)
。这种强制类型转换操作并不改变操作数本身。参考链接
The text was updated successfully, but these errors were encountered: