黑马程序员--C语言基础之--数据类型

------- IOS培训期待与您交流! ----------

所谓的类型,就是对数据分配存储单元的安排,包括存储单元的长度以及数据的形式,不同的类型分配不同的长度和存储的形式,C语言允许使用的数据类型如下图:

接下来将对几个类型做一个简单的介绍:

一、基本数据类型之--整型(int)

(一)、系统中为每一个整型数据分配了4个字节的存储空间,整型数有以下几种类型:

(1)短整型(short int):类型名为shotr int或者简写为short, 系统为分配了2个字节的存储空间,变量值的范围是-32768~32767,输出时格式声明为:%d或者%i。

(2)长整型(long int):类型名为long int或者简写为long, 系统为分配了4个字节的存储空间,变量值的范围是-2147483648~2147483647,输出时格式声明为:%ld。

(3)双长整型(long long int):类型名为long long int或者简写为long long, 系统为分配了8个字节的存储空间,变量值的范围是-922337203654775808~922337203654775807,输出时格式声明为:%lld。

(4)无符号基本整型(unsigned int):类型名为unsigned int或者简写为int, 系统为分配了4个字节的存储空间,变量值的范围是0~4294967295,输出时格式声明为:%u。

(5)有符号整型(signed int):类型名为signed int或者简写为int, 系统为分配了4个字节的存储空间,输出时格式声明为:%d。

在这里有个地方需要注意一下:就是unsigned和signed,定义时,它们只会改变你的最高位,并不会修改数据类型的长度,两者的区别就是:决定最高位是否会被当为符号位。

(二)、整型变量的定义

可以用下列语句定义整型变量:

(1)int a, b;  同时定义两个变量a与b

(2)int a = 10; 在定义变量a的同时赋初值给a。

注意:int a ,int b;这种写法是错误的,不可以在一个语句中写两个定义类型。

二、基本数据类型之--浮点型(float)

(一)、浮点型又可分为以下两种类型的浮点数

(1)单精度浮点数(float):系统为其分配了4个字节的存储空间,共32位二进制数, 变量的范围是
3.4x10-38E~3.4x10+38E,输出时格式声明为:%f。

(2)双精度浮点数(double):系统为其分配了8个字节的存储空间,共64位二进制数, 变量的范围是
1.7x10-308E~1.7x10+308E,输出时格式声明为:%f。

(二)、浮点型变量定义

可以用下列语句定义浮点型变量:

(1)float a, f;

(2)double b;

三、基本数据类型之--字符型(char)

(一)、目前大多数系统采用ASCII字符集,各种字符集的基本集都包括了127个字符,其中就包括:

(1)字母:大小写20个英文字母

(2)数字:0~9

(3)29个专门的符号:!” #  & ‘ () *  +  , -  . /  : ; <  =  >  ?  [  \  ]  ^  _  {  |  }  ~

(4)空格符:空格、水平制表符(tab)、垂直制表符、换行、换页

(5)不能显示的字符:空(null)字符(‘\0‘)、警告(‘\a‘)、退格(‘\b‘)、回车(‘\r‘)等等。

系统为字符变量分配了1个字节的存储空间,符号字符型数的取值范围为-128~127, 无符号字符型数到值范围是0~255。

(二)、字符常数的表示

(1)符号表示的字符可直接用单引号括起来表示, eg:‘a‘, ‘9‘, ‘Z‘,也可用 该字符的ASCII码值表示,
例如十进制数85表示大写字母‘U‘, 十六进制数0x5d表示 ‘]‘, 八进制数0102表示大写字母‘B‘;

(2)不能用符号表示的控制符,
只能用ASCII码值来表示, 如十进制数10表示换行,六进制数0x0d表示回车, 八进制数033表示Esc。

(三)、字符类型定义

char a;表示定义一个字符变量

a = ‘B‘;表示给字符变量赋值B这个字符

四、指针类型(*)

指针是一种特殊的数据类型, 在其它语言中一般没有。指针是指向变量的地址, 实质上指针就是存贮单元的地址。根据所指的变量类型不同,可以是整型指针 (int *)、浮点型指针(float *)、字符型指针(char *)、结构指针(struct *)和联合指针(union
*),由于指针所涉及的知识较为宽广且知识较为杂乱,将在之后的博文中,再进行更加详细的介绍。

五、构造类型

构造类型中又可分为四种类型:

(1)数组:数组是一组有序数据的集合,数组中个数据的排列是有一定的规律的,数组的下标就是代表着数据在数组中的序号;同时,用一个数组名和下标便能够唯一地确认数组中的元素,数组中的每一个元素都属于同一个数据类型,不能在数组中添加不同类型的数据。

定义数组:类型符 数组名[常量表达式](注意:在定义时,常量表达式只能是常量,不能包含变量)

eg:int str[6] = {3,5,6,7,7,8};

(2)结构体(struct):C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,就是结构体。

定义结构体时,首先需要先定义一个结构体的类型,之后根据定义的结构体类型再定义变量:

第一步:定义结构体类型:struct 结构体类型名{成员列表};

eg:struct Student{int age; char *name};定义个一个类型为Student的结构体,结构体中包含两个成员;

第二步:定义变量:struct 结构体类型名 变量名称

eg:struct Student stu  定义了一个名为stu的变量

第三步:给变量赋值:变量名.成员名

eg:stu.age = 19 ;给结构体中的age这个成员赋值

(3)共用体(union)

(4)枚举(enum)

六、无值型(void)

无值型字节长度为0, 主要有两个用途: 一是明确地表示一个函数不返回任何 值; 一是产生一个同一类型指针(可根据需要动态分配给其内存)。 例如: void *buffer; /*buffer被定义为无值型指针*/

时间: 2024-10-13 06:34:36

黑马程序员--C语言基础之--数据类型的相关文章

黑马程序员_01_Java语言基础部分(数据类型与表达式、流程控制语句、数组与方法)

------- android培训.java培训.期待与您交流! ---------- Java语言主要由5中符号组成 标识符:数字.字母.美元符.下划线(注意不能数字开头) 关键字:goto和const保留了它们,但是Java没有使用. 运算符:注意运算符优先级(左结合和右结合要注意) 分隔符:注意+号可以分割字符串. 注释:三种注释. 数据类型与变量 常量: 整型 浮点型 字符:注意后面跟三个八进制(\ddd)和 四位unicode码(\u8bf7) (不区分大小写) 字符串 布尔型 变量:

黑马程序员-c语言基础:各种数据类型的输出占位符

c语言中的输出操作相对java来说是比较麻烦的,每种数据类型的输出都有各自的占位符: 下面是各种数据类型的输出占位符: short/int : %d int a = 1; printf("这个整数是:%d", a); long: %ld; (long 是int得修饰,不能算是一种单独的数据类型,只是比int多了四个字节的存储空间) long long: %lld char : %c float/double : %f  float默认是6位小数输出:可以在%f中控制:例如:%.2f:输

黑马程序员-C语言基础:指针类型与指针和数组、字符串的关系

//指针变量就是用来存储地址的,只能存储地址 格式:  int  *p;  这个p为指针变量:指针变量占8个字节 类型是用来说明这个指针指向的类型: 比如上边的int代表这个指针变量会指向int类型的存储空间: int *p = &a;//这样一句可以写,此时的*只是一个标志,表示这个*只是表示p是个指针: *p = &a;//这样写就错了:此时*p表示取p指向的空间的值: 指针疑问:指针既然都占据8个字节,那么为什么要划分类型, 是因为当用*p指针取值或者赋值的时候,知道该取几个字节,比

黑马程序员-C语言基础:数组和字符串

数组:数组的定义注意点 数组初始化正确写法: int args[5] = {1,23,32,4,5}; int args[5] = {12,23}; int args[5] = {[3]=23, [4]=13};//这种写法也可以,直接给其中角标为3和4的赋值 int args[] = {12,23,32};//中括号中没写数组大小,在大括号中一定要写具体数值 int args['A'] = {2,34,5}; 错误写法: int args[];//这样编译器不知道给你开辟多大的内存空间 int

黑马程序员---C语言基础---结构体

------iOS培训.Java培训.Android培训, iOS学习型技术博客,期待与您交流------ C语言基础---结构体 一.什么是结构体 介绍结构体之前,我想先简单介绍下数组.我想大家对数组都再熟悉不过了,顾名思义,数组就是将一些数据(元素)组合在一起,作为一个整体.使用数组需要注意的是这些元素必须是相同类型.而结构体和数组类似,也是将一些数据组合在一起作为一个整体,但是这些元素可以是不同类型.可以这么理解:结构体是更加灵活的数组,因为它允许元素是不同的类型. 实际生活中,如果我们要

黑马程序员——C语言——基础语法

首先学的是C语言的基础语法,主要分为关键字.标示符.注释.数据.常量.变量. 一.关键字 1   关键字是指在C语言中系统默认的有特殊意义的字符 2   关键字全部是小写字母表示,总共32个关键字(主函数[main]中int .return),如下: auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned

黑马程序员——c语言基础语法(二)

指针变量同普通变量一样,使用之前不仅要定义说明,而且必须赋予具体的值.未经赋值的指针变量不能使用,否则将造成系统混乱,甚至死机.指针变量的赋值只能赋予地址,决不能赋予任何其它数据,否则将引起错误.在C语言中,变量的地址是由编译系统分配的,对用户完全透明,用户不知道变量的具体地址. 两个有关的运算符: &:取地址运算符. *:指针运算符(或称“间接访问” 运算符). C语言中提供了地址运算符&来表示变量的地址.其一般形式为:&变量名: 如&a表示变量a的地址,&b表示

黑马程序员--C语言基础之--变量、内部函数与外部函数

------- IOS培训期待与您交流! ---------- 一.变量 变量代表着一个有名字的.具有特定属性的一个存储单元,运行期间,变量的值是可以改变的.变量必须先定义,后使用.定义时,指定该变量的名字与类型.变量名实际上是以一个名字代表的一个存储地址:而从变量中取值,实际上是通过变量名找到相对应的内存地址,再从该存储单元中读取相对应的数据. 刚刚提到了变量定义这个词,我们知道,在定义函数的时候,我们都会先对函数进行一个声明,这就又引用了一个概念:声明.那么我们先来理解一下什么是声明和定义:

黑马程序员-C语言基础一:关键字、标识符、注释

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 一.      关键字 1.      什么是关键字 1>     关键字就是C语言提供的有特殊含义的符号,也叫做“保留字” 2>     C语言一共提供了32个关键字,这些关键字都被C语言赋予了特殊含义 auto doubl