zoukankan      html  css  js  c++  java
  • 黑马程序员--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)字符('')、警告('a')、退格('')、回车(' ')等等。 

    系统为字符变量分配了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被定义为无值型指针*/

  • 相关阅读:
    MySQL优化实例
    MySQL优化步骤和my.cnf优化配置
    linux高负载下mysql数据库彻底优化
    MySQL配置文件my.cnf详解
    CentOS Linux下MySQL 5.1.x的安装、优化和安全配置
    Apache 配置文件详解
    [LeetCode] Number of Boomerangs
    [LeetCode] Binary Watch
    [LeetCode] Reverse Linked List
    [LeetCode] Maximum Product of Three Numbers
  • 原文地址:https://www.cnblogs.com/waterfox/p/4366753.html
Copyright © 2011-2022 走看看