zoukankan      html  css  js  c++  java
  • C语言之对指针概念的初步探究

    指针?什么是指针?

    指针(pointer)是一个值为内存地址的变量(或数据对象)。

    接下来从变量的角度分析:

    变量有两个属性,一个是地址,一个是值。

    指针与普通变量的不同之处在于:指针变量的值是一个内存地址。

    变量有两个属性:那么获取这两个属性的方式就是使用以下两种运算符

    取址运算符 &

    后跟一个变量名,&给出该变量的地址;

    间接运算符 *

    后跟一个指针名或地址时,*给出储存在指针指向地址上的值;

    指针的意义何在?

    指针提供一种以符号形式使用地址的方法。

    因为计算机硬件指令非常依赖地址。

    指针在某种程度上把程序员要传达的指令以更接近机器的方式表达。

    指针使程序更有效率。

    尤其是指针能有效处理数组。数组表示法实际上是变相使用指针。

    大概有哪方面的知识点:

    1、指针和数组、多维数组、数组指针、

    2、指针和函数、函数间的通信、函数指针、

    3、指针作为形参

    4、指针操作

    5、指针数组

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    什么是变量?什么是数据对象?什么是内存地址?什么是值?

    计算机中有内存,内存用于存储程序中的数据。

    内存实际上就是一个块可供CPU访问的存储区域,存储空间。

    访问内存,要知道访问哪一块区域,于是就要有内存地址来描述内存特定的储存空间。

    存储空间存储单元是一个字节。用内存地址来描述每个字节的存储空间。

    存储单元存的数据就是

    C语言提供了不同的模型和存储类别,在内存中储存数据。

    被内存存储的每一个值都占用一定的物理内存,C语言这样一块内存称为对象。或者叫数据对象。

    注意这根面向对象编程中的类对象不是一个概念。

    程序需要一种方法访问对象---->声明变量,变量用标识符表示,这样软件就可以通过标识符来指定物理内存中的对象了。

    变量标识符(变量名)是内存对象的一种访问途径。

    当然途径不止这一种,还有一种途径就是指针

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    函数指针:

    函数指针是指向函数的指针变量。是一个指针,指向一个函数。

    因此“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。

    这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。

    如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。

    有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是大体一致的。

    函数指针有两个用途调用函数做函数的参数

    int func(int x);  //声明一个函数

    int (* f)(int x);  //声明一个函数指针,包含了要指向的函数原型信息;int是返回值, 圆括号内的int x是形参参数信息;

    于是就有如下操作:

    f=func; /* 将func函数的首地址赋给指针f */

    f = &func; //或者这么赋值给指针

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

     待补充。。。。。。

  • 相关阅读:
    Win32 DPAPI加密编程
    .NET环境下的DPAPI加密编程
    Windows加密API的功能分类
    Windows加密API的层次
    Windows加密服务架构
    简单H5单页面真机调试
    vue中使用动画vue-particles
    particular.js
    sublime快捷键
    判断内核
  • 原文地址:https://www.cnblogs.com/grooovvve/p/9911157.html
Copyright © 2011-2022 走看看