• C语身教程第六章:指针(8)



    本章小结
    1. 指针是C语言中一个重要的构成部门,哄骗指针编程有以下优点:
    (1)提高轨范的编译遵从和执行速度。
    (2)经过议定指针可哄骗主调函数和被调函数之间共享变量或数据布局,便于完成双向数据通讯。
    (3)可以完成静态的存储分拨。
    (4)便于吐露显露各类数据布局,编写高质量的轨范。

    2. 指针的运算
    (1)取地点运算符&:求变量的地点
    (2)取内容运算符*:吐露显露指针所指的变量
    (3)赋值运算
    ·把变量地点赋予指针变量
    ·同典范榜样指针变量相互赋值
    ·把数组,字符串的首地点赋予指针变量
    ·把函数出口地点赋予指针变量
    (4)加减运算
    对指向数组,字符串的指针变量可以遏制加减运算,如p n,p-n,p ,p--等。对指向同一数组的两个指针变量可以相减。对指向别的典范榜样的指针变量作加减运算是偶然义的。
    (5)干系运算
    指向同一数组的两个指针变量之间可以遏制大于、小于、 即是比力运算。指针可与0比力,p==0吐露显露p为空指针。

    3. 与指针有关的各类分析');和意义见下表。
    int *p;     p为指向整型量的指针变量
    int *p[n];   p为指针数组,由n个指向整型量的指针元素构成。
    int (*p)[n];  p为指向整型二维数组的指针变量,二维数组的列数为n
    int *p()    p为前往指针值的函数,该指针指向整型量
    int (*p)()   p为指向函数的指针,该函数前往整型量
    int **p     p为一个指向另一指针的指针变量,该指针指向一个整型量。

    4. 有关指针的分析');良多是由指针,数组,函数分析');组合而成的。
    但并不是可以肆意组合,比方数组不克不及由函数构成,即数组元素不克不及是一个函数;函数也不克不及前往一个数组或前往另一个函数。比方
    int a[5]();便是错误的。

    5. 关于括号
    在评释组合分析');符时, 标识符右边的方括号和圆括号优先于标识符右边的“*”号,而方括号和圆括号以相反的优先级从左到右结合。但可以用圆括号窜改商定的结合按次。

    6. 阅读组合分析');符的轨则是“从里向外”。
    从标识符起头,先看它右边有有方括号或园括号,若有则先作出评释,再看右边有无*号。 假若在任何功夫碰到了闭括号,则在接连之前必须用相反的轨则处置括号内的内容。比方:
    int*(*(*a)())[10]
    ↑ ↑↑↑↑↑↑
    7 6 4 2 1 3 5
    上面给出了由外向外的阅读按次,上面来评释它:
    (1)标识符a被分析');为;
    (2)一个指针变量,它指向;
    (3)一个函数,它前往;
    (4)一个指针,该指针指向;
    (5)一个有10个元素的数组,其典范榜样为;
    (6)指针型,它指向;
    (7)int型数据。
    因而a是一个函数指针变量,该函数前往的一个指针值又指向一个指针数组,该指针数组的元素指向整型量。



    版权声明: 原创作品,答应转载,转载时请务必以超链接形式标明文章 原始理由 、作者信息和本声明。不然将深究功令责任。

  • 相关阅读:
    docker6 管理工具
    docker1 初识docker
    libsvm处理多分类的问题
    selenium webdriver 的三种等待方式
    文本深度表示模型Word2Vec
    机器学习中训练集、验证集、测试集的定义和作用
    机器学习中防止过拟合的处理方法
    用Python读取大文件
    进化世界
    EDS(实例)
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1975587.html
Copyright © 2020-2023  润新知