C语言基础知识:变量、指针与内存管理

需积分: 9 0 下载量 86 浏览量 更新于2024-07-14 收藏 1.48MB PPT 举报
"这篇资源是关于C语言基础知识的回顾,主要涵盖了数据类型、变量的存储属性、指针以及内存管理等内容。示例代码演示了如何使用指针交换两个整数的值,并涉及到地址传递和内存布局的概念。" 在C语言中,数据类型是编程的基础,它决定了变量所占用的内存大小、取值范围以及可执行的操作。基本数据类型包括字符型(char)、整型(int, short, long)、实型(float, double)以及枚举类型(enum)。枚举类型允许用户自定义一组整型常量,方便在程序中使用。 结构体(struct)是一种构造数据类型,它可以将不同类型的数据组合在一起形成一个新的数据类型。例如,`struct student`定义了一个包含学号、姓名、性别、年龄、分数和地址等信息的学生结构体。结构体类型定义并不分配内存,只有当声明结构体变量时才会分配内存。 共用体(union)则是一种特殊的构造类型,它允许多个不同类型的变量共享同一块内存空间。这意味着在任一时间,共用体中的一个成员有值,而其他成员的值将被覆盖。例如,`union data`定义了一个包含整型、字符型和浮点型的共用体。 指针是C语言中的核心概念,它存储了变量的内存地址。在示例代码中,`pointer_1`和`pointer_2`指向整型变量`a`和`b`的地址,通过`swap`函数实现了这两个变量值的交换。在`swap`函数中,虽然交换了指针的值,但由于没有实际交换它们所指向的值,因此交换操作无效。在`main`函数中,`printf`按照指针的值输出了原始的`a`和`b`,即5和9。 内存管理在C语言中非常重要,因为程序员需要手动管理内存的分配与释放。在这个例子中,虽然没有涉及内存的动态分配(如`malloc`或`calloc`)和释放(如`free`),但地址的显示表明了变量在内存中的位置。 通过这段代码,我们可以看到C语言中数据类型的使用、指针操作以及内存布局的直观展示,这对于理解和学习C语言的基础知识是非常有价值的。