指针,指针是什么
指针,指针是什么详细介绍
本文目录一览: 什么是指针?
在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。[1]在高级语言中,指针有效地取代了在低级语言,如汇编语言与机器码,直接使用通用暂存器的地方,但它可能只适用于合法地址之中。指针参考了存储器中某个地址,通过被称为反参考指针的动作,可以取出在那个地址中存储的值。作个比喻,假设将电脑存储器当成一本书,一张内容记录了某个页码加上行号的便利贴,可以被当成是一个指向特定页面的指针;根据便利粘贴面的页码与行号,翻到那个页面,把那个页面的那一行文字读出来,就相当于是对这个指针进行反参考的动作。[2]
在信息工程中指针是一个用来指示一个内存地址的计算机语言的变量或中央处理器(CPU)中寄存器(Register)【用来指向该内存地址所对应的变量或数组】。指针一般出现在比较接近机器语言的语言,如汇编语言或C语言。面向对象的语言如Java一般避免用指针。指针一般指向一个函数或一个变量。在使用一个指针时,一个程序既可以直接使用这个指针所储存的内存地址,又可以使用这个地址里储存的函数的值。
另外,指针也指钟表中用来指示对应时间的部件。
中文名
指针
外文名
pointer
类别
指示测量的数据的装置
适用范围
计算机语言
作用
通过它找到以它为地址的内存单元
简介
使用指针来读取数据,在重复性操作的状况下,可以明显改善程序性能,例如在遍历字符串,查取表格,控制表格及树状结构上。对指针进行复制,之后再解引用指针以取出数据,无论在时间或空间上,都比直接复制及访问数据本身来的经济快速。[2]
指针的机制比较简单,其功能可以被集中重新实现成更抽象化的引用(reference)数据形别。许多编程语言中都支持某种形式的指针,最著名的是C语言,但是有些编程语言对指针的运用采取比较严格的限制,如Java一般避免用指针,改为使用引用。[2]
有两种含义,一是作为数据类型,二是作为实体。[2]
指针作为实体,是一个用来保存一个内存地址的计算机语言中的变量。指针一般出现在比较底层的程序设计语言中,如C语言。高层的语言如Java一般避免用指针,而是引用。[2]
指针作为数据类型,可以从一个函数类型、一个对象类型或者一个不完备类型中导出。从中导出的数据类型称之为被引用类型(referenced type)。指针类型描述了一种对象,其值为对被引用类型的实体的引用。[2]
指针就是一个存放地址的变量
当指针指向某个变量
这时这个指针里就存放了那个变量的地址
同时可以利用指针直接取变量中的值用 只要在指针前加 * 就是取其
真值了(也就是被指向的变量的值)
举个例子
int i=0,*p;
声明了一个 int 类型的 变量i和指针p
假设i在内存中所存在的地址为aaaaa(随便写的)
p->i 就是使指针p指向i
也就是说 指针p中存放了aaaaa这个地址
当你操作这个p时就是直接操作了aaaaa这个地址中存放的东西
间接操作了变量i,
这就是指针的作用
01什么是指针?
在C语言中,操作系统屏蔽掉所有硬件存储器,为程序员提供了一个类似数组的内存空间,这个内存空间的基本单位是字节,也是程序员能够操作的基本单位。指针就是每块基本单位大小的内存的地址,通常被叫做地址或者地址编号。
将字节大小的内存分别进行编号,有助于我们对于内存的使用。用来存放指针的变量是指针变量,这也是程序员通常所说的指针。以下所有的指针变量统称为指针。
声明指针的格式:存储类型 指针类型 * 指针名;举例:
char *p;int *p;02存储类型不单独声明时,有两种情况:
情况1:局部定义指针时,默认为auto类型。表示当进入代码块时,系统为自动变量分配内存。在块内,这些变量被定义,并被认为它是局部于本块的。当退出块时,系统释放分配给自动变量的内存,因此,变量值就丢失了。重新进入块,系统会为自动变量再次分配内存,原先的值已经没有了。
情况2:全局定义指针时,默认为extern类型。表示为该变量永久的分配存储,直到当前进程运行结束。全局变量在整个程序执行期间都是存在的。
04*号*号有两个作用:
作用1:在定义时,和普通变量做区分,如果没有*号,那就和普通变量的定义格式一致,没有任何区别了;
作用2:在使用时,*变量名这个形式表示拿到指针保存的地址上的数据。
05指针名
指针名是一个标识符,要符合标识符的命名规范;注:标识符的命名规范:1. 由数字、字母、下划线组成;2. 不能以数字开头;3. 不能和关键字冲突,严格区分大小写。06指针的大小?指针的大小和类型没有关系,和CPU的运行时的寻址位数有关系。在32位操作系统中,32位CPU一次最大能够访问32位数据,所以指针的大小就是32位,即4字节;在64位操作系统中,64位CPU一次最大能够访问64位数据,所以指针的大小就是64位,即8字节。验证:使用64位编译器:
linux@ubuntu:~$gcc01test.clinux@ubuntu:~$./a.outsizeof(char*)=8sizeof(short*)=8sizeof(int*)=8sizeof(long*)=8linux@ubuntu:~$cat01test.c#include
int main(intargc,constchar*argv[]){ printf("sizeof(char*)=%ld\n",sizeof(char*)); printf("sizeof(short*)=%ld\n",sizeof(short*)); printf("sizeof(int*)=%ld\n",sizeof(int*)); printf("sizeof(long*)=%ld\n",sizeof(long*)); return0}使用32位编译器:linux@ubuntu:~$gcc01test.c-m32linux@ubuntu:~$./a.outsizeof(char*)=4sizeof(short*)=4sizeof(int*)=4sizeof(long*)=4linux@ubuntu:~$cat01test.c#include
int main(intargc,constchar*argv[]){ printf("sizeof(char*)=%d\n",sizeof(char*)); printf("sizeof(short*)=%d\n",sizeof(short*)); printf("sizeof(int*)=%d\n",sizeof(int*)); printf("sizeof(long*)=%d\n",sizeof(long*)); return0;}07指针类型有什么作用?由于一个指针只能保存一个地址,一个地址仅仅代表一个字节内存,而通常情况下,程序员定义变量都不不止使用一个字节。所以如何让指针访问到占有多个字节内存的变量的其他数据,就是通过指针类型。指针类型决定着指针一次能够访问的最大内存空间。
指针是通过地址来访问变量的数据类型。简单的说就是指向的东西。
指示时间的针啊,分时针,分针,秒针.
1、在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。
2、在信息工程中指针是一个用来指示一个内存地址的计算机语言的变量或中央处理器(CPU)中寄存器(Register)【用来指向该内存地址所对应的变量或数组】。指针一般出现在比较接近机器语言的语言,如汇编语言或C语言。面向对象的语言如Java一般避免用指针。指针一般指向一个函数或一个变量。
3、另外,指针也指钟表中用来指示对应时间的部件。
扩展资料:
指针的机制比较简单,其功能可以被集中重新实现成更抽象化的引用(reference)数据形别。许多编程语言中都支持某种形式的指针,最著名的是C语言,但是有些编程语言对指针的运用采取比较严格的限制,如Java一般避免用指针,改为使用引用。
有两种含义,一是作为数据类型,二是作为实体。
指针作为实体,是一个用来保存一个内存地址的计算机语言中的变量。指针一般出现在比较底层的程序设计语言中,如C语言。高层的语言如Java一般避免用指针,而是引用。
指针作为数据类型,可以从一个函数类型、一个对象类型或者一个不完备类型中导出。从中导出的数据类型称之为被引用类型(referenced type)。指针类型描述了一种对象,其值为对被引用类型的实体的引用。
参考资料:百度百科-指针
指针是什么意思啊?
意思是一个char指针。
在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。
由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。
扩展资料:大家都认为,c语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上。因此,说指针是c语言的灵魂,一点都不为过。
同时,这种说法也让很多人产生误解,似乎只有C语言的指针才能算指针。basic不支持指针,在此不论。其实,pascal语言本身也是支持指针的。
从最初的pascal发展至今的object pascal,可以说在指针运用上,丝毫不会逊色于c语言的指针。
内存分配表
计算机中的内存都是编址的,就像你家的地址一样。在程序编译或者运行的时候,系统(可以不关心具体是什么,可能是编译器,也可能是操作系统)开辟了一张表。
每遇到一次声明语句(包括函数的传入参数的声明)都会开辟一个内存空间,并在表中增加一行纪录。
参考资料:指针–百度百科
指针是什么意思
指针意思如下:
在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为"指针"。意思是通过它能找到以它为地址的内存单元。
在高级语言中,指针有效地取代了在低级语言,如汇编语言与机器码,直接使用通用暂存器的地方,但它可能只适用于合法地址之中。指针参考了存储器中某个地址,通过被称为反参考指针的动作,可以取出在那个地址中存储的值。
作个比喻,假设将电脑存储器当成一本书,一张内容记录了某个页码加上行号的便利贴,可以被当成是一个指向特定页面的指针;根据便利粘贴面的页码与行号,翻到那个页面,把那个页面的那一行文字读出来,就相当于是对这个指针进行反参考的动作。
在信息工程中指针是一个用来指示一个内存地址的计算机语言的变量或中央处理器(CPU)中寄存器(Register)【用来指向该内存地址所对应的变量或数组】。指针一般出现在比较接近机器语言的语言,如汇编语言或C语言。面向对象的语言如Java一般避免用指针。
指针一般指向一个函数或一个变量。在使用一个指针时,一个程序既可以直接使用这个指针所储存的内存地址,又可以使用这个地址里储存的函数的值。
另外,指针也指钟表中用来指示对应时间的部件。
指针怎么理解?
1、指针的概念
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。分别说明。
先声明几个指针放着做例子:
int *ptr;
char *ptr;
int **ptr;
int (*ptr)[3];
int *(*ptr)[4];
2、指针的类型
从语法的角度看,只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。这是指针本身所具有的类型。看看下面各个指针的类型:
int *ptr; //指针的类型是int *
char *ptr; //指针的类型是char *
int **ptr; //指针的类型是 int **
int (*ptr)[3]; //指针的类型是 int(*)[3]
int *(*ptr)[4]; //指针的类型是 int *(*)[4]
3、指针所指向的类型
当通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。从语法上看,只须把指针声明语句中的指针名字和名字左边的指针声明符*去掉,剩下的就是指针所指向的类型。例如:
int *ptr; //指针所指向的类型是int
char *ptr; //指针所指向的的类型是char
int **ptr; //指针所指向的的类型是 int *
int (*ptr)[3]; //指针所指向的的类型是 int()[3]
int *(*ptr)[4]; //指针所指向的的类型是 int *()[4]
在指针的算术运算中,指针所指向的类型有很大的作用。
指针的类型(即指针本身的类型)和指针所指向的类型是两个概念。当对C越来越熟悉时,会发现,把与指针搅和在一起的“类型”这个概念分成“指针的类型”和“指针所指向的类型”两个概念,是精通指针的关键点之一。
5、指针的值
指针的值是指针本身存储的数值,这个值将被编译器当作一个地址,而不是一个一般的数值。在32位程序里,所有类型的指针的值都是一个32位整数,因为32位程序里内存地址全都是32位长。
指针所指向的内存区就是从指针的值所代表的那个内存地址开始,长度为sizeof(指针所指向的类型)的一片内存区。以后,我们说一个指针的值是XX,就相当于说该指针指向了以XX为首地址的一片内存区域;一个指针指向了某块内存区域,就相当于说该指针的值是这块内存区域的首地址。
指针所指向的内存区和指针所指向的类型是两个完全不同的概念。在例一中,指针所指向的类型已经有了,但由于指针还未初始化,所以它所指向的内存区是不存在的,或者说是无意义的。
6、指针本身所占据的内存区
指针本身占了多大的内存;只要用函数sizeof(指针的类型)测一下就知道了。在32位平台里,指针本身占据了4个字节的长度。
指针本身占据的内存这个概念在判断一个指针表达式是否是左值时很有用。
扩展资料:指针的算术运算
指针可以加上或减去一个整数。指针的这种运算的意义和通常的数值的加减运算的意义是不一样的。例如:
例一:
char a[20];
int *ptr=a;
...
...
ptr++;
在上例中,指针ptr的类型是int*,它指向的类型是int,它被初始化为指向整形变量a。接下来的第3句中,指针ptr被加了1,
编译器是这样处理的:它把指针ptr的值加上了sizeof(int),在32位程序中,是被加上了4。由于地址是用字节做单位的,故ptr所指向的地址由原来的变量a的地址向高地址方向增加了4个字节。
由于char类型的长度是一个字节,所以,原来ptr是指向数组a的第0号单元开始的四个字节,此时指向了数组a中从第4号单元开始的四个字节。
可以用一个指针和一个循环来遍历一个数组,看例子:
例二:
这个例子将整型数组中各个单元的值加1。由于每次循环都将指针ptr加1,所以每次循环都能访问数组的下一个单元。再看例子:
例三:
char a[20];
int *ptr = a;
...
...
ptr += 5;
在这个例子中,ptr被加上了5,编译器是这样处理的:将指针ptr的值加上5乘sizeof(int),在32位程序中就是加上了5乘4=20。由于地址的单位是字节,故现在的ptr所指向的地址比起加5后的ptr所指向的地址来说。
向高地址方向移动了20个字节。在这个例子中,没加5前的ptr指向数组a的第0号单元开始的四个字节,加5后,ptr已经指向了数组a的合法范围之外了。虽然这种情况在应用上会出问题,但在语法上却是可以的。这也体现出了指针的灵活性。
如果上例中,ptr是被减去5,那么处理过程大同小异,只不过ptr的值是被减去5乘sizeof(int),新的ptr指向的地址将比原来的ptr所指向的地址向低地址方向移动了20个字节。
总结一下,一个指针ptrold加上一个整数n后,结果是一个新的指针ptrnew,ptrnew的类型和ptrold的类型相同,ptrnew所指向的类型和ptrold所指向的类型也相同。ptrnew的值将比ptrold的值增加了n乘sizeof(ptrold所指向的类型)个字节。
就是说,ptrnew所指向的内存区将比ptrold所指向的内存区向高地址方向移动了n乘sizeof(ptrold所指向的类型)个字节。一个指针ptrold减去一个整数n后,
结果是一个新的指针ptrnew,ptrnew的类型和ptrold的类型相同,ptrnew所指向的类型和ptrold所指向的类型也相同。
ptrnew的值将比ptrold的值减少了n乘sizeof(ptrold所指向的类型)个字节,就是说,ptrnew所指向的内存区将比ptrold所指向的内存区向低地址方向移动了n乘sizeof(ptrold所指向的类型)个字节。
参考资料:
百度百科——指针
指针是什么意思?
表示成员选择(指针),选择结构体的成员变量。
1、结构:运算符 -> 是指向结构体成员运算符,结合方向为自左向右。
2、用法:对象指针->成员名。
举例说明如下:
扩展资料:
C语言指针的必要性。
指针解决了一些编程中基本的问题:
1、指针的使用使得不同区域的代码可以轻易的共享内存数据。当然也可以通过数据的复制达到相同的效果,但是这样往往效率不太好,因为诸如结构体等大型数据,占用的字节数多,复制很消耗性能。
但使用指针就可以很好的避免这个问题,因为任何类型的指针占用的字节数都是一样的(根据平台不同,有4字节或者8字节或者其他可能)。
2、指针使得一些复杂的链接性的数据结构的构建成为可能,比如链表,链式二叉树等等。
3、有些操作必须使用指针。如操作申请的堆内存。还有:C语言中的一切函数调用中,值传递都是“按值传递”的,如果要在函数中修改被传递过来的对象,就必须通过这个对象的指针来完成。
参考资料:
百度百科--指针
指针的定义是什么?
在信息工程中,指针是一个用来指示一个内存地址的计算机语言的变量或中央处理器(CPU)中的寄存器(Register)。指针一般出现在比较近机器语言的语言,如汇编语言或C语言。面向对象语言如Java一般避免用指针,而是引用。
1.基本概念
指针一般指向一个函数或一个变量。在使用一个指针时,一个程序既可以直接使用这个指针所储存的内存地址,又可以使用这个地址里储存的函数的值。
在计算机语言中,由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。
2.指针实质
指针其实是一个整数
计算机中的内存都是编址的,每个地址都有一个符号,就像家庭地址或者IP地址一样。在C语言的多数实现中,指针值等同于一个无符号整数(unsigned int,因不致歧义,下简称“整数”),它是一个以当前系统寻址范围为取值范围的整数。声明一个无符号整数并使它的值等于对象的地址值,实质上也能使之有指针的作用。
32位系统的寻址能力(地址空间)是4GB(0~232-1),二进制表示长度为32比特,也就是4B。不难验证,在32位系统的大多数实现里,int类型也正好是4B(32-bit)长度,可以取遍上述范围。同理,64位系统取值范围为0~264-1,int类型长度为8B。
例证就是程序1得到的答案和程序2的答案一致。
程序1:#include main(){ char *pT; char t='h'; pT=&t; putchar(*pT);}
程序2:#include
main(){ char *pT; char t='h'; pT=(char *)1245048; putchar(*pT);}
3.指针和整数的区别
既然指针的实质是一个整数,为何不用unsigned int直接声明,或者统一用int *声明,而要用不同的类型后面加上一个“*”表示呢?char *声明过的类型,一次访问1个sizeof(char)长度,double *声明过的类型,一次访问1个sizeof(double)长度。也正因此,程序2第6行加上“(char *)”是因为毕竟unsigned int和char *不是一回事,需要强制转换,否则会有个警告。
在汇编里,没有数据类型这一概念,整数类型和指针就是一回事了。不论是整数还是指针,执行自增的时候,都是将原值加1。如果上文声明char *pT;,汇编语言中pT自增(INC)之后值为1245049,可是C语言中pT++之后pT值为1245049。如果32位系统中,上文声明int *pT;,汇编语言中pT自增之后值为1245049,可是C语言中pT++之后pT值为1245052。
为什么DOS下面的Turbo C,和Windows下的VC的int类型自增时的步进不一样长?因为DOS是16位的,Windows x86是32位的,int类型长度取决于编译器的位长。可以预见,在Windows x64中编译,上文声明int *pT;,在执行pT++之后pT值为1245056。
什么是指针
指针,是C语言中的一个重要概念及其特点,也是掌握C语言比较困难的部分。
在同一CPU构架下,不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。有了指针以后,不仅可以对数据本身,也可以对存储数据的变量地址进行操作。
指针描述了数据在内存中的位置,标示了一个占据存储空间的实体,在这一段空间起始位置的相对距离值。
在 C/C++语言中,指针一般被认为是指针变量,指针变量的内容存储的是其指向的对象的首地址,指向的对象可以是变量(指针变量也是变量),数组,函数等占据存储空间的实体。
地址与指针
指针相对于一个内存单元来说,指的是单元的地址,该单元的内容里面存放的是数据。在 C 语言中,允许用指针变量来存放指针,因此,一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。
指针变量及其定义
指针变量是存放一个内存地址的变量,不同于其他类型变量,它是专门用来存放内存地址的,也称为地址变量。定义指针变量的一般形式为:类型说明符*变量名。
指针的英文
指针的英文是:pointer。
indicator n.指示物;标志;指示器;显示器;装置;指示剂;指示(物)种;…计;…仪。
pointer n.指针;猎犬;提示;链接;教鞭;指示棒;暗示;线索;点子;建议。
needle n.针;针状物;刺状物;针锋相对;敌意;针头;指针;注射针;磁针;松针。
guiding principle 指导原则;指导性原则。
guide n.指导者;向导;导游;有指导意义的事物;有助于作出决定的事物;导向装置;定向标记;指南;手册;指导原则。
短语搭配:watch hand手表指针,dangling reference/pointer悬摆指针,oscillation of the compass needle罗盘指针的摆动。
双语例句:
1、The vibration can cause the needle to jump.
振动可能会引起指针突然抖动。
2、To centre the needle, turn the knob.
要将指针移至中央位置时,转动旋钮即可。
3、Erase the element pointed to by position.
指向元素的指针和引用不会失效。
4、This situation is similar to the previous pointer example.
这种情况类似于前面的指针示例。
指针的英文是:pointer。
indicator n.指示物;标志;指示器;显示器;装置;指示剂;指示(物)种;…计;…仪。
pointer n.指针;猎犬;提示;链接;教鞭;指示棒;暗示;线索;点子;建议。
needle n.针;针状物;刺状物;针锋相对;敌意;针头;指针;注射针;磁针;松针。
guiding principle 指导原则;指导性原则。
guide n.指导者;向导;导游;有指导意义的事物;有助于作出决定的事物;导向装置;定向标记;指南;手册;指导原则。
短语搭配:watch hand手表指针,dangling reference/pointer悬摆指针,oscillation of the compass needle罗盘指针的摆动。
双语例句:
1、The vibration can cause the needle to jump.
振动可能会引起指针突然抖动。
2、To centre the needle, turn the knob.
要将指针移至中央位置时,转动旋钮即可。
3、Erase the element pointed to by position.
指向元素的指针和引用不会失效。
4、This situation is similar to the previous pointer example.
这种情况类似于前面的指针示例。
5、The needle of a magnetic compass points to the magnetic north pole.
磁性罗盘上的指针指向北方磁极。
6、Or results in overflow when added to the current pointer.
或在添加到当前指针时导致溢出。
7、Invalid operation for the current cursor position.
错误是说,游标指针的位置不对。
8、How can I wrap a function which takes a function pointer as an argument?
如何封装参数为函数指针的函数?
9、Callout with pointer centered at bottom of text block.
指针位于文本块底部中间的标注。
10、So, how do you allocate a pointee?
那么,你怎样分配一个指针数据?
c语言指针是什么
1、c语言指针其实是一个整形变量,与其它数据不同的是,它的作用是用来存储其它变量的地址。指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(pointsto)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。
2、因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。
3、再打个比方:有个人让你去麦当劳帮我买个雪糕,那么麦当劳是这个变量a,但是那个人现在把麦当劳所在的地址写在纸上给你,那么这张纸就可以看做一个指向麦当劳的指针。
指针是什么
这个词语通常用在手表,时钟或者指南针上、手表里分有,时针、分针、秒针这些都统称为指针。
以c语言为例,其指针是C语言中的一个重要概念及其特点,也是掌握C语言比较困难的部分。指针也就是内存地址,指针变量是用来存放内存地址的变量,不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。有了指针以后,不仅可以对数据本身,也可以对存储数据的变量地址进行操作。
指针相对于一个内存单元来说,指的是单元的地址,该单元的内容里面存放的是数据。在C语言中,允许用指针变量来存放指针,因此,一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。
指针变量是存放一个变量地址的变量,不同于其他类型变量,它是专门用来存放内存地址的,也称为地址变量。定义指针变量的一般形式为:类型说明符星号变量名。类型说明符表示指针变量所指向变量的数据类型;星号表示这是一个指针变量;变量名表示定义的指针变量名,其值是一个地址。