指针?什么是指针?

指针(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; //或者这么赋值给指针

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

待补充。。。。。。

C语言之对指针概念的初步探究的更多相关文章

  1. C语言学习笔记--指针概念

    指针也是一种变量,占有内存空间,用来保存内存地址,在32位系统中指针的占用的内存大小为4个字节 1.*号的意义 (1)在指针声明时,*号表示所声明的变量为指针 (2)在指针使用时,*号表示取指针所指向 ...

  2. 深入理解C语言中的指针与数组之指针篇

    转载于http://blog.csdn.net/hinyunsin/article/details/6662851     前言 其实很早就想要写一篇关于指针和数组的文章,毕竟可以认为这是C语言的根本 ...

  3. 深入理解C语言中的指针与数组之指针篇(转载)

    前言 其实很早就想要写一篇关于指针和数组的文章,毕竟可以认为这是C语言的根本所在.相信,任意一家公司如果想要考察一个人对C语言的理解,指针和数组绝对是必考的一部分. 但是之前一方面之前一直在忙各种事情 ...

  4. C语言中file文件指针概念及其操作 (转载)

    文件 文件的基本概念 所谓"文件"是指一组相关数据的有序集合. 这个数据集有一个名称,叫做文件名.实际上在前面的各章中我们已经多次使用了文件,例如源程序文件.目标文件.可执行文件. ...

  5. Go语言基础之指针

    区别于C/C++中的指针,Go语言中的指针不能进行偏移和运算,是安全指针. 要搞明白Go语言中的指针需要先知道3个概念:指针地址.指针类型和指针取值. Go语言中的指针 Go语言中的函数传参都是值拷贝 ...

  6. c语言之函数指针应用

    c语言之函数指针应用 1.函数指针与指针函数 在开始运用函数指针前,我们需要将两个概念即:函数指针与指针函数搞清楚. 函数指针,指明这个一个函数,但返回值为指针类型,语法格式为: 类型名* 函数名A( ...

  7. 3.1 Go语言基础之指针

    区别于C/C++中的指针,Go语言中的指针不能进行偏移和运算,是安全指针. 要搞明白Go语言中的指针需要先知道3个概念:指针地址.指针类型和指针取值. 一.Go语言中的指针 Go语言中的函数传参都是值 ...

  8. C语言之漫谈指针(上)

    C语言之漫谈指针(上) 在C语言学习的途中,我们永远有一个绕不了的坑,那就是--指针. 在这篇文章中我们就谈一谈指针的一些基础知识. 纲要: 零.谈指针之前的小知识 一.指针与指针变量 二.指针变量的 ...

  9. C语言之漫谈指针(下)

    C语言之漫谈指针(下) 在上节我们讲到了一些关于指针的基础知识: 详见:C语言之漫谈指针(上) 本节大纲: 零.小tips 一.字符指针 二.指针数组与数组指针 三.数组传参与指针传参 四.函数指针及 ...

随机推荐

  1. mysql中表触发器的简单使用

    以前有接触过触发器,但没有亲自写过,所以在这里简单写个例子: 功能为:两张表t_test,t_emp;给t_test添加触发器让t_test每插入一条数据,就给t_emp中num字段值增1: 1,建立 ...

  2. python的文件锁使用

    python的文件锁目前使用的是fcntl这个库,它实际上为 Unix上的ioctl,flock和fcntl 函数提供了一个接口. 1.fcntl库的简单使用 import fcntl import ...

  3. win10右击windows键没有反应解决方案(1707版本)

    按Win+R打开运行,输入“regedit”打开注册表编辑器. 2.在“HKEY_CLASSES_ROOT”主键下找到“linkfile”或者".lnkfile"字符串值项,在右侧 ...

  4. HBase 协处理器统计行数

    环境:cdh5.1.0 启用协处理器方法1. 启用协处理器 Aggregation(Enable Coprocessor Aggregation) 我们有两个方法:1.启动全局aggregation, ...

  5. python的远程调试(使用pycharm)

    测试环境描述1:c++调用python,操作系统环境是linux 2:pycharm安装在windows 安装步骤 1:把pycharm-debug.egg上传到linux上面. 2:使用easy_i ...

  6. java全栈day09----继承 抽象类

    01继承的概述 在Java中,类的继承是指在一个现有类的基础上去构建一个新的类, 构建出来的新类被称作子类,现有类被称作父类在java中 继承如何来实用呢?举个例子 继承的定义格式和使用 *A:继承的 ...

  7. Java流机制详解

    转自http://blog.csdn.net/qq_16558621/article/details/51377887  http://www.cr173.com/html/18666_1.html

  8. Visual Studio 代码格式化插件(等号自动对齐、注释自动对齐等)

    1.下载地址 插件:Code alignment  下载地址 2.介绍 Based on principles borrowed from mathematics and other discipli ...

  9. Java50道经典习题-程序50 文件IO

    题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件"stud"中. impo ...

  10. Android camera调用出现错误解决方法

    开发时,先是使用三星的手机测试,发现一切正常: 但是到了小米的手机的时候,发现图片很模糊,发现是设置camera.setParameters(parameters);报错导致用的是默认的最小的分辨率, ...