当前位置: 首页 > 文档资料 > C 语言程序设计 >

数据类型

优质
小牛编辑
139浏览
2023-12-01

数据类型

数据类型的作用:编译器预算对象(变量)分配的内存空间大小。

数据类型决定:内存容器的宽度;数据解析方式。内存当中的二进制数据需要按照指定的方式进行解析,得到相应的解析结果

1499775187577

数据类型的本质是固定内存大小的别名

数据类型决定了变量占用的空间大小和内存的解析方法(存储结构)

类型对于编译器来说,主要就是用于说明数据存储空间的大小以及数据的存储结构

数据类型的作用是:编译器预算对象(变量)分配的内存空间大小

求数据类型的大小:sizeof(int *),注意:sizeof()是运算符,不是函数

void main31()
{
    int a; //告诉c编译器分配4个字节的内存
    int b[10] ; //告诉c编译器分配40个自己内存

    printf("b:%d, b+1:%d, &b:%d, &b+1:%d \n", b, b+1, &b, &b+1);

    printf("sizeof(b):%d \n", sizeof(b));  //40
    printf("sizeof(a):%d \n ", sizeof(a)); //4
     //b 代表的数组首元素的地址
    //&b代表的是整个数组的地址  
      system("pause");
}

数据类型别名

数据类型可以理解为固定大小内存块的别名,可以使用typedef关键字给已存在的数据类型起别名

struct Teacher
{
    char name[64];
    int age;
}Teacher;

typedef struct Teacher2
{
    char name[64];
    int age;
}Teacher2;
//数据别名 typedef

typedef int u32;

void main33()
{
    int a; //告诉c编译器分配4个字节的内存
    int b[10] ; //告诉c编译器分配40个字节内存

    struct Teacher t1;

    Teacher2 t2;
    t1.age = 31;

    printf("u32:%d \n", sizeof(u32));

    {
        char *p2 = NULL;
        void *p1 = NULL;
        p2 = (char *)malloc(100);
        p1 = &p2;
    }
    {
        //void a;//编译器不知道如何分配内存
    }

    system("pause");
}

C99语法补充_Bool

#include <stdio.h>
#include <stdlib.h>

//01.在C99语法当中引入了基于C语言的布尔类型:
//  1._Bool类型
//  2.占用单个字节
//  3.true(非0)|false(0)-->单个字节存储
int main01(void)
{
    _Bool bl = 10;//true|false 非0|0

    printf("%d \n", bl);
    printf("%d \n", sizeof(bl));//一个字节
    bl ? printf("周瑞富爱凤姐! \n") : printf("周瑞富不爱凤姐! \n");

    system("pause");
    return 1;
}