C语言中的数据类型

C语言中基本的数据类型有:

整型: 分为有符号整型(signed)和无符号整型(unsigned ), 它们各自又可以分为 长整型(long), 短整型(short), 整型(int)和字符型(char), 所以结合起来一共有8种基本的整型结构: long/short/int/char/unsigned long/unsigned short/unsigned int/unsigned char;

浮点型:分为单精度 float , 双精度型:double;

(补充:整型表示的数的范围:

说到了上面的整数类型,需要说一个计算机中的整数的表示方法:

在计算机系统中,整数是用补码表示的;

源码: 最高位表示符号,0 表示正, 1 表示负, 以8位二进制为例,它表示的范围为 (-2^7 –1, 2^7-1); (为什么少了一个呢,因为正0 与负0 表示的不一样)

补码:整数的补码等于源码本身, 负整数的补码等于将其对应正数二进制表示所有位取反(包括符号位)后加1, 以8位二进制为例,它的表示范围为(-2^7, 2^7-1);此时的正0 与负0 的补码表示的一样;   另外在补码中,用 10000000 表示-2^7;)

C语言中的构造类型:

结构体类型:

//定义:
struct 结构体名字 {
    类型1 成员1;
    类型2 成员2;
    ……
};                     //别忘记分号;

// 变量的定义:

struct 结构体名字 变量名        // 如:已经定义了一个 struct student的结构体,现在定义变量: struct student  xiaoming;

// 变量的初始化:
struct student {
    char Num;
    char* Name;
    int Age;
    char Sex;
};
struct student xiaoming = {‘1‘, "xiaoming", 18, ‘b‘}                       //与定义的结构体对应起来就可以了;

//结构体里面的变量的引用:
方法一:使用结构体名时, 实心 .  进行成员运算符,例如: xiaoming.Name
方法二:使用结构体指针时,使用 ->      例如: struct student *xiaoming;            xiaoming -> Name

注意:可以用 struct student xiaoming = {‘1‘, "xiaoming", 18, ‘b‘} 这个方法进行初始化,但是不是用这个方法进行赋值;即:struct student xiaoming; xiaoming = {‘1‘, "xiaoming", 18, ‘b‘}  这样是错误的;

位段: 它是与结构体差不多,不一样的就是里面的元素占用的不是基本的数据类型,而是一个或多个位;

// 定义如下:

struct 名称 {
    int a:3;
    int b:4;
    int c:5;
};

上面定义了 a 为3个位, b为4个位, c为5个位;

注意: 1. 位段成员的类型必须为 unsigned 或 int 类型;

2. 一个位段必须存储在一个单元内(即一个字节内), 如果放不下,放到下一个字节;

共用体:union

共用体,将不同的数据类型组合在一起,这些不同的数据类型的内存中的起始单元是一样的,该共用体的大小为其成员中最长的长度;

注意:共用体变量的赋值与引用只能对其成员进行;(因为它是共用体,只能通过它的成员才能知道它的类型是什么)

// 共用体的定义:

union 共用体名 {
    类型1 成员1;
    类型2 成员2;
    类型3 成员3;
    ……
};                                                // 别忘记这个分号;

// 变量的定义;

union 共用体名 变量名;

// 不能对共用体变量进行初始化(因为吧,你不能明确指定选用它是什么类型),只能对成员进行赋值;

// 成员的引用 :    使用  .    (与结构体相同)

枚举类型:它的存在就是为了写程序的时候,提高可读性与维护性;

如:当我们定义了一个性别 sex 时,我们可以用0 表示男,用1 表示女;这样的可读性很不好; 如果如 boy 或 girl 来表示更好,怎么办??

那就定义枚举类型吧;

//定义:
enum 枚举名 {成员1, 成员2, 成员3,……,成员n};
比如: enum sex { boy, girl};  它的成员表示的数值默认为 0, 1, 2 …… 等;

//定义变量:
enum 枚举名 变量名  例如: enum week { sun, mon, tue, wed}; enum week today;

//赋值;
上面定义的变量today 的值只能是 enum week 列举出来的常量;
today = sun;
时间: 2024-10-07 06:43:10

C语言中的数据类型的相关文章

Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器

Android For JNI(二)--C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器 当我们把Hello World写完之后,我们就可以迈入C的大门了,今天就来讲讲基本的一些数据类型,函数之内的 我们先来看一张传播久远的图片' 一.各种数据类型介绍 整型 整形包括短整型.整形和长整形. 短整形 short a=1; 整形 一般占4个字节(32位),最高位代表符号,0表示正数,1表示负数,取值范围是-2147483648~2147483647,在内存中的存储顺序是地位在前.高位在

2_C语言中的数据类型 (三)整数与无符号数

1.1       sizeof关键字 sizeof是c语言关键字,功能是求指定数据类型在内存中的大小,单位:字节 sizeof与size_t类型 1.1       int类型 1.1.1          int常量,变量 int就是32位的一个二进制整数,在内存当中占据4个字节的空间 1.1.2          printf输出int值 %d,输出一个有符号的10进制整数,%u,代表输出一个无符号的十进制整数 1.1.3          printf输出八进制和十六进制 %x,代表输出

C语言中的数据类型详解

c语言其实可以理解为为救两种数据类型,整数和浮点数(bool类型char类型都可以看作整数类型).  不过这次并不是从两个方面说,而把char类型等从整数类型分开说.   而对于数据类型的说明也从存储和打印两个方面说起.  存储:     0.数据类型的位数是由操作系统决定的,一般系统都把一个char类型的位数当作一个字节.1.int 类型          int类型种类很多,         总结为前面叫long(short******),signed(unsighed):        

Java语言中关于数据类型的一些总结

一.Java语言中有两种数据类型 基本数据类型:即int/char等这样的数值类型,共8种 1.byte byte 数据类型是8位.有符号的,以二进制补码表示的整数 范围是-27--(27-1): byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一: 例子:byte a = 100,byte b = -50. 2.short short 数据类型是 16 位.有符号的以二进制补码表示的整数; 范围是-215--(215-1); Shor

VC++和C语言中常见数据类型转换为字符串的方法

1.短整型(int) itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制 itoa(i,temp,2); ///按二进制方式转换 2.长整型(long) ltoa(l,temp,10); 3.浮点数(float,double) 用fcvt可以完成转换,这是MSDN中的例子: int decimal, sign; char *buffer; double source = 3.1415926535; buffer = _fcvt(source,7,&dec

python语言中的数据类型之字典

数据类型 字典类型dict 用途:记录多个值,列表是索引对应值,而字典是key对应值,其中key对value有描述性 定义方式:在{ }用逗号分隔开多个元素,每个元素都是key:value形式,其中key是不可变类型,通常是字符串类型,而value是任意类型. 类型转换: d=dict(x=1,y=2,z=3) print(d) print(type(d)) #第一种类型转换 items=[('name','egon'),('age',18),('gender','male')] d={} fo

2_C语言中的数据类型 (八)运算符

1          运算符表达式和语句 1.1       基本运算符 1.1.1          = 数据对象:泛指数据在内存的存储区域 左值:表示可以被更改的数据对象 右值:能赋给左值的量 1.1.2          + 加 1.1.3          – 减 1.1.4          * 乘 1.1.5          / 除 1.1.6          % 取余数 1.1.7          += 加等于 1.1.8          -= 减等于 1.1.9     

2_C语言中的数据类型 (九)逻辑运算符与if语句

1          条件分支语句 1.1       关系运算符 在C语言中0代表false,非0代表真 1.1.1          < 小于 1.1.2          <= 小于等于 1.1.3          > 大于 1.1.4          >= 大于等于 1.1.5          == 等于 1.1.6          != 不等于 1.2       关系运算符优先级 前四种相同,后两种相同,前四种高于后两种优先级 1.3       逻辑运算符 1

2_C语言中的数据类型 (二)进制

1.1       二进制数.位.字节与字 我们习惯于十进制的数:10,12等 一个位只能表示0,或者1两种状态,简称bit,一个位是一个bit 一个字节为8个二进制,称为8位,简称BYTE,8个比特是一个字节 一个字为2个字节,简称WORD. 两个字为双字,简称DWORD 1.2       八进制 八进制为以8为基数的数制系统,C语言当中0表示八进制,0666; 1.3       十六进制 十六进制值16为基数 的数制系统,C语言中用0x表示十六进制 十进制 十六进制 二进制 0 0 00