• C语言必须理清的概念2


    1.6指针数组和数组指针

    ★指针数组

    类型名 * 数组名[数组长度]

    int *p[8];

    ★数组指针

    类型名( * 数组名)[数组长度]

    int (*p)[8];

    P先与[]结合,说明p是一个数组,然后再与*结合说明数组p的元素是指向整型数据的指针,相当于定义了8个整型指针变量,用于存放地址单元。

    b就是数组元素为指针的数组,本质是数组。

    ☆p先与*结合,是一个指针,指针指向有8个整型元素数组,p为指向数组首元素地址的指针,其本质是指针。

    举例:

    ////

    1.7指针函数和函数指针

    指针函数:本质是函数,返回的是某种类型的指针

    类型标识符 * 函数名 (参数表)

    函数指针:本质是指针,指向的不是一般的变量,而是一个函数,每个函数都有一个入口地址,函数指针指向的就是函数的入口地址。

    函数指针要与它所指向的函数具有相同类型。

    用 函数指针名=函数名 的方式来引用函数。

    1.8传值和传址

    传值:函数调用过程中参数传递,把实参传递给形参,堆形参修改不会影响实参,对形参的修改只是修改实参的一个备份,不会影响到实参。

    传址:函数调用过程中参数传递的地址,形参和实参公用一个空间,对形参修改会影响实参。

    1.9递归和嵌套

    递归:函数在调用的过程中自身即使主函数也是被调函数,如果在使用递归调用过程中没有停止条件,将会无限制的进行下去,直到程序崩溃。

    在使用递归调用的时候,一定给一个停止条件。

    嵌套:在一个函数中调用另外一个函数,不能在一个函数中定义另外一个函数。

    //递归例子:猴子吃桃

    10.1结构体

    因为数组只能用来存储相同类型的数据,而我们时常需要将一些不同类型的元素放在一起,这就可以利用结构体,将这些元素类型封装在一起,得到一种新的自定义数据类型。

    struct 结构体名

    {

    成员类型   成员名;

    };

    结构体为它的每一个成员都分配存储空间;

    函数的返回类型可以定义结构体等复合类型。

    结构体所占用的内存大小,为所有成员各自占用的内存大小之和。

    1.11共用体

    一种构造类型,由基本数据结构组成。

    占用的内存大小由其成员中占用内存最大的那个决定,所有成员占用同一个起始地址和同一段内存空间,在某一时刻,只能存储某一成员的信息。

    在使用结构体和共用体进行嵌套的时候,注意其中成员的引用方法,从最外层变量开始引用他的成员,如果它的成员是共用体或结构体的变量,那直接以共用体或结构体类型变量的方式引用它的成员变量。

    1.12枚举

    一一列举,将具有相同属性的一类数据一一列举出来。

    enum  枚举类型名

    {

    标示符1 【=整形常熟】;

    }

    1.13位域

    有时候并不需要占用完整的字节,只需要占一个或几个二进制位。

    位域:把存储空间中二进制划分为几个不同的区域,并说明每个区域,每个区域有一个域名,允许在程序中按域名进行操作。

  • 相关阅读:
    [LeetCode] Reverse Linked List II
    [LeetCode] Reverse Linked List
    [LeetCode] Palindrome Linked List
    人工智能之一《tensorflow》
    计算机视觉之《OpenCV开发环境搭建》
    Android Automotive开发之一《编译自己的SDK 》 // TOBEDONE
    Android Automotive开发之一《环境: JDK7&JDK8切换 》
    Android Auto开发之一《开始学习Auto 》
    网络安全之证书、密钥、密钥库等名词解释
    Android开发笔记之《特斯拉-Tesla 代码分析》
  • 原文地址:https://www.cnblogs.com/heri/p/2862830.html
Copyright © 2020-2023  润新知