zoukankan      html  css  js  c++  java
  • C:数据类型

    C 语言数据类型有以下几类。

    基本类型:

    • 整数类型
    • 小数类型

    派生类型:

    • 指针类型
    • 数组类型
    • 结构类型
    • 共用体类型

    枚举类型

    空类型

    数组

    数组 Arrray 就是一些具有相同类型的数据的集合,这些数据在内存中依次挨着存放,彼此之间没有缝隙。

    C 语言数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。

    数组的定义方式:dataType arrayName[length];

    dataType 为数据类型,arrayName 为数组名称,length 为数组长度。

    数组的初始化并且给前面的元素赋值:int a[10]={12, 19, 22 , 993, 344};

    当赋值元素少于数组总体元素的时候,剩余的元素自动初始化为 0。

    如果给全部元素赋值,那么在定义数组时可以不给出数组的长度。

    二维数组初始化和赋值:

    int a[5][3]={ {80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85} };
    int a[5][3]={80, 75, 92, 61, 65, 71, 59, 63, 70, 85, 87, 90, 76, 77, 85};

    用来存放字符的数组称为字符数组,字符数组实际上是一系列字符的集合,也就是字符串 String。在 C 语言中,没有专门的字符串变量,没有 string 类型,通常就用一个字符数组来存放一个字符串。例如:

    char str[] = {"c.biancheng.net"};
    char str[] = "c.biancheng.net";

    在 C 语言中,字符串总是以 作为结尾,所以 也被称为字符串结束标志,或者字符串结束符。

    由双引号 " " 包围的字符串会自动在末尾添加 。例如,"abc123" 从表面看起来只包含了 6 个字符串,其实不然,C 语言会在最后隐式地添加一个 。所以,字符数组的长度至少要比字符串的长度大 1。

    指针

    内存中字节的编号称为地址 Address 或 指针 Pointer。地址从 0 开始依次增加,对于 32 位环境,程序能够使用的内存为 4GB, 最小地址为 0,最大的地址为 0XFFFFFFFF。

    数据和代码都以二进制的形式存储在内存中,计算机无法从格式上区分某块内存到底存储的是数据还是代码。当程序被加载到内存后,操作系统会给不同的内存块指定不同的权限,拥有读取和执行权限的内存块就是代码,而拥有读取和写入权限(也可能是有读取权限)的内存块就是数据。

    数据在内存中的地址也称为指针。存放指针的变量称为指针变量。定义指针变量与定义普通变量非常类似,不过要在变量名前面加星号,格式为:datatype *name;

    定义指针变量时必须带 *,给指针变量赋值时不能带 *

    指针变量存储了数据的地址,通过指针变量能够获得该地址上的数据,格式为:*pointer; 这里的 * 称为指针运算符。

    结构体

    结构体用来存放一组不同类型的数据。类似于 Java 中的类。结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员 Member。例如:

    struct stu {
        char *name;  //姓名
        int num;  //学号
        int age;  //年龄
        char group;  //所在学习小组
        float score;  //成绩
    };

    结构体变量,指向结构体的变量。例如:struct stu stu1, stu2;

    共用体

    和结构体非常类似的语法。共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员。

    枚举

    枚举类型的定义形式为:

    enum week{ Mon = 1, Tues = 2, Wed = 3, Thurs = 4, Fri = 5, Sat = 6, Sun = 7 }; 

    用法和 Java 中的枚举类似。 

    INSERT

  • 相关阅读:
    netcore---Program.cs配置相关信息,及读取配置信息
    js
    python3 openssl问题(贼有用)
    Flask+微信公众号开发(接入指南)
    运维角度处理跨域问题
    羞羞的Python模块包
    Nginx之伪404( root与alias )
    【深度学习】:梯度下降,随机梯度下降(SGD),和mini-batch梯度下降
    【深度学习】:小白也能看懂的卷积神经网络
    《剑指offer》5:替换空格
  • 原文地址:https://www.cnblogs.com/colin220/p/11050415.html
Copyright © 2011-2022 走看看