加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

C语言数据类型

发布时间:2021-05-21 04:52:15 所属栏目:大数据 来源: https://blog.csdn.net/yilovex
导读:IOS学习的前提: 转载地址:http://www.cnblogs.com/mjios/archive/2013/03/13/2957946.html 本文目录 @H_403_6@ 一、变量 二、类型修饰符 三、不同编译器环境下基本数据类型的存储长度 说明: 这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言
IOS学习的前提:
转载地址:http://www.cnblogs.com/mjios/archive/2013/03/13/2957946.html
本文目录
@H_403_6@
  • 一、变量
  • 二、类型修饰符
  • 三、不同编译器环境下基本数据类型的存储长度
  • 说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略

    C语言有丰富的数据类型,因此它很适合用来编写数据库,如DB2、Oracle都是C语言写的。

    C语言的数据类型大致可以分为下图中的几类:

    回到顶部

    一、变量

    跟其他语言一样,C语言中用变量来存储计算过程使用的值,任何变量都必须先定义类型再使用。为什么一定要先定义呢?因为变量的类型决定了变量占用的存储空间,所以定义变量类型,就是为了给该变量分配适当的存储空间,以便存放数据。比如你是char类型,我就只给你分配1个字节就够了,没必要分配2个字节、3个字节乃至更多的存储空间。

    下面的表格描述了在16位编译器环境下,基本数据类型所占用的存储空间,了解这些细节,对以后学习指针和数组时是很有帮助的

    需要注意的是:

    1.局部变量的使用跟Java稍微有点不一样

    1> 在Java中,你声明了一个局部变量后,如果没有经过初始化赋值就使用该变量,编译器直接报错

    第9行报错了,因为变量a没有初始化

    ?

    2> 在C语言中,你声明看一个局部变量后,没有经过初始化赋值是可以使用的

    复制代码

    1 #include <stdio.h>
    2 
    3 int main()
    4 {
    5     int b;           
    6     printf("%d",b);
    7     return 0;
    8 }

    复制代码

    但这是很危险的,不建议这样做。大多数人应该觉得变量b打印出来应该是0,其实不是。因为系统会随意给变量b赋值,得到的是垃圾数据。

    上述代码的打印结果是:

    因此,局部变量还是必须先进行初始化赋值,然后再使用,这样才是最安全的做法。

    * 如果全局的int类型变量,系统会默认赋值为0

    ?

    2.char的取值范围是:ASCII码字符?或者?-128~127的整数

    于是,使用char存储大写字母A有2种赋值方式:

    // 方式1
    char c = 'A';
    
     方式2
    65;

    上面两种方式是等效的,因为大写字母A的ASCII码值刚好为65。点击查看ASCII码表的所有值。

    ?

    3.char只能存储一个字符

    汉字或者字符串需要用字符数组来存储,因为一个汉字占了2个字符,一个字符串是由一个或者多个字符组成的。

    因此,下面的写法都是错误的:

    char c1 = ';
    char c2 = 123char c3 = ";

    ?

    回到顶部

    二、类型修饰符

    我们还可以在基本数据类型的前面加一些修饰符,也有人称之为限定符,一样的意思。

    有以下4种类型修饰符:

    @H_403_6@
  • short? 短型
  • long? 长型
  • signed? 有符号型
  • unsigned? 无符号
  • 1.用法演示

    这些修饰符最常是用来修饰int类(可以省略int)

    1 下面两种写法是等价的 2 short int s1 = 1; 3 short s2 = 4 5 6 long int l1 = 2; 7 long l2 = 8 9 可以连续使用2个long 10 long ll = 10; 11 12 13 signed int si1 = 3; 14 signed si2 = 15 16 17 unsigned int us1 = 4; 18 unsigned us2 = 19 20 也可以同时使用2种修饰符 21 signed int ss = 5; 22 unsigned int ul = 5;

    复制代码

    ?

    2.short和long

    1>?short和long可以提供不同长度的整型数,也就是可以改变整型数的取值范围,比如short的取值范围是-32768~32767,long的取值范围就是-2147483648~2147483647

    2> 当然,数据的存储长度也会跟着变化。比如,在64位编译器环境下,short占2个字节(16位),int占4个字节(32位),long占8个字节(64位)。世界上的编译器林林总总,不同编译器环境下,取值范围和占用的长度是不一样的,不过幸运的是,ANSI ISO制定了以下规则:

    * short跟int至少为16位(2字节)

    * long至少为32位(4字节)

    * short的长度不能大于int,int的长度不能大于long

    * char一定为为8位(1字节),毕竟char是我们编程能用的最小数据类型

    ?

    3.signed和unsigned

    1> signed代表有符号,包括正数、负数和0;unsigned代表无符号,只包括正数和0。比如,signed的取值范围是-32768~32767,那么unsigned的取值范围是0~65535,当然,不同的编译器有不同的取值范围

    2> 其实,signed和unsigned的区别就是它们的最高位是否要当做符号位,并不会像short和long那样改变数据的长度,即所占的字节数,

    ?

    4.signed、unsigned也可以修饰char,long还可以修饰double

    unsigned 10;
    signed char c2 = -10;
    
    double d1 = 12.0;

    ?

    回到顶部

    三、不同编译器环境下基本数据类型的存储长度

    红色的代表常用的数据类型

    顶 0

    (编辑:北几岛)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读