数据结构与算法入门(2)--预备知识(指针、结构体、动态内存分配)

本文介绍了使用C语言实现数据结构所需的预备知识,包括指针的基本概念、指针变量的访问方式、结构体的定义与使用,以及动态内存分配的原理和应用。通过学习,读者可以更好地理解如何在C语言中创建和管理数据结构。
摘要由CSDN通过智能技术生成

我们知道程序=数据的存储+数据的操作+计算机程序设计语言。 想要实现典型的数据结构,需要选择一门合适的编程语言。个人认为,C语言是一个很好的工具。C中的指针能很好的实现链表以及以链表为基础的树与图等。一些高级语言,如java,python没有指针的概念,实现典型的数据结构难免会有些变味。既然选择了C语言,那就讲讲想要用C语言实现数据结构需要的预备知识。主要分为三部分– 指针,结构体和动态内存分配

本节知识框架

(Firefox浏览器,右键点击图片,选择view image即可查看高清大图。)


  • 指针

    • 指针的基本概念

      • 指针与指针变量
        变量在内存中分配到的位置叫做地址,也就是指针指针就是地址,地址就是指针。
        指针变量 :存储另一个变量的地址的变量。(指针变量是通过寻址来找到另一个变量)
      • 指针变量的访问
        • 直接访问
          按变量地址来存取变量值
        • 间接访问
          通过存放变量地址的变量来访问变量
      • 指针变量的定义与初始化
        【存储类型】 数据类型 *指针名 = 地址;
        • 指针的初始化
          除了上述的,用变量的地址来初始化指针变量之外,还有三种方法来初始化指针变量。
          1. 通过指针变量初始化指针变量
          2. 通过整型地址常量来初始化指针变量
            int *p;
            p = (int *) 0x23;
          3. NULL或0
      • 基类型 与指针变量的大小
        指针变量所指向的变量的数据类型为指针的基类型。尽管指针变量可以是不同的基类型,但指针变量的大小是固定的,是由计算机硬件所决定的。对32位系统来说,指针变量的大小为4个字节。想一想为什么?(因为32位操作系统地址总线宽度为32位,用4个字节可以遍历所有内存空间。又因指针就是地址,所以指针的取值范围与地址范围相同,故用4个字节可以表示所有可能的指针值。)
        例如:
        float *a ;
        int *b;
        上述两个语句定义了两个指针变量。第一个指针变量指向一个float类型的变量,第二个指针变量指向一个int类型变量。指针变量a的基类型为float,指针变量b的基类型为int。但是a和b的大小均为4个字节。(注意,int数据类型也为4个字节,所以可以通过整型地址常量来初始化指针变量)
    • 常见运算—指针的运算就是地址的运算

      • 赋值运算
        例如:int a;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值