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 语言中,字符串总是以 \0 作为结尾,所以 \0 也被称为字符串结束标志,或者字符串结束符。

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

转载于:https://www.cnblogs.com/colin220/p/11050415.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值