‘壹’ 请问c语言中 指针是什么有什么作用请用通俗的语言解释
通俗的说,就是你家的门牌号,
简单地说指针就是指向变量和对象的地址。
指针的用途非常广泛,比如如果你想通过函数改变一个变量的值,就得用指针而不能用值传递。还有在很多时候变量,特别是对象的数据量实在太大,程序员就会用指针来做形参,只需要传递一个地址就行,大大提高了效率。
以上还只是指针的初步应用,随着你在C语言学习上的逐步深入,你会发现更多的用途的
‘贰’ C语言指针的用法是什么
指针是C语言中广泛使用的一种数据类型。运用指针编程是C语言最主要的风格之一。
利用指针变量可以表示各种数据结构;能很方便地使用数组和字符串;并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了C语言的功能。
学习指针是学习C语言中最重要的一环,能否正确理解和使用指针是我们是否掌握C语言的一个标志。
同时,指针也是C语言中最为困难的一部分,在学习中除了要正确理解基本概念,还必须要多编程,上机调试。只要作到这些,指针也是不难掌握的。
‘叁’ C语言中指针是什么
我们都知道:C语言中的数组是指 一类 类型,数组具体区分为 int 类型数组,double类型数组,char数组 等等。同样指针 这个概念也泛指 一类
数据类型,int指针类型,double指针类型,char指针类型等等。
通常,我们用int类型保存一些整型的数据,如 int num = 97 , 我们也会用char来存储字符: char ch = 'a'。
我们也必须知道:任何程序数据载入内存后,在内存都有他们的地址,这就是指针。而为了保存一个数据在内存中的地址,我们就需要指针变量。
因此:指针是程序数据在内存中的地址,而指针变量是用来保存这些地址的变量。
‘肆’ 在C语言中什么是指针指针是干什么用的,有什么意义
写简单的程序的话不用指针也行了吧. 比如, int a = 2; int* p = &a; *p = 3; 这里a是一个地址(编译后), 为了读写这个地址单元里的东西,可以用p,也可以用一般变量a. 对于指针的便利,我现在能想到的,可能是: 函数A调用函数B时,把一个内存块的地址传递过去,这样可以避免按值传递时开辟一个栈空间并逐一拷贝内存块里的值的开销(C++里的拷贝构造函数在做这件事),并且A,B函数操作的都是同一个内存块里的东西,如果这就是目的,那么传指针就是很有效率的做法(如果不用指针就可能要用一个全局的变量了). 用一个指针(函数指针)存放一系列同类型的函数名(入口地址),方便函数调用. void*类型指针可以存放任何类型指针. 让父类类型指针指向任何子类对象可以实现动态绑定. 写着写着似乎指针还挺有用,呵呵. 我相信指针的使用一定要很小心,否则可能要忍受程序报错而总找不到错在何处的痛苦. 有一些比较极端的例子, 如一个函数返回了一个函数里局部变量的指针,一用就出错; 如声明一个指针没有分配空间就传给别一函数使用; 如多个线程都在使用同一个内存块,你修我改,甚至有人把它删掉了或不小心让指针指向系统用的内存,另一个人还准备往里读写东西---可能要费心思来同步. 如指针指向的内存可能是new/malloc出来的,可能要想办法及时删除并要保证没有别的线程要用...
‘伍’ C语言中指针是什么意思
1.指针就是1个变量,他也是一个存放内容的内存空间。
2.指针存放的内容是另一个内存空间的起始地址。不同于一般变量存放的就是变量值。
3.取值操作符*对于指针的作用是取得指针变量存放的内存地址里面的值,不加*取出的是指针变量存放的值(就是一个内存地址)
上面3步,step by step 你就理解了.
‘陆’ C语言指针的用法
1、指针的概念
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。
先声明几个指针放着做例子:
例一:
(1)int*ptr;
(2)char*ptr;
(3)int**ptr;
(4)int(*ptr)[3];
(5)int*(*ptr)[4];
1、指针的类型
从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。这是指针本身所具有的类型。让我们看看例一中各个指针的类型:
(1)int*ptr;
//指针的类型是int*
(2)char*ptr;
//指针的类型是char*
(3)int**ptr;
//指针的类型是int**
(4)int(*ptr)[3];
//指针的类型是int(*)[3]
(5)int*(*ptr)[4];
//指针的类型是int*(*)[4]
怎么样?找出指针的类型的方法是不是很简单?
2、指针所指向的类型
当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。
从语法上看,你只须把指针声明语句中的指针名字和名字左边的指针声明符*去掉,剩下的就是指针所指向的类型。例如:
(1)int*ptr;
//指针所指向的类型是int
(2)char*ptr;
//指针所指向的的类型是char
(3)int**ptr;
//指针所指向的的类型是int*
(4)int(*ptr)[3];
//指针所指向的的类型是int()[3]
(5)int*(*ptr)[4];
//指针所指向的的类型是int*()[4]
在指针的算术运算中,指针所指向的类型有很大的作用。指针的类型(即指针本身的类型)和指针所指向的类型是两个概念。当你对C越来越熟悉时,你会发现,把与指针搅和在一起的"类型"这个概念分成"指针的类型"和"指针所指向的类型"两个概念,是精通指针的关键点之一。
本篇文章来源于 黑基网-中国最大的网络安全站点 原文链接:http://www.hackbase.com/lib/2008-03-09/13993.html
‘柒’ c语言指针是什么意思!
指针其实是一个整形变量,与其它数据不同的是,它的作用是用来存储其它变量的地址。指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。
因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。
再打个比方:有个人让你去麦当劳帮我买个雪糕,那么麦当劳是这个变量a,但是那个人现在把麦当劳所在的地址写在纸上给你,那么这张纸就可以看做一个指向麦当劳的指针。
(7)c语言中文网指针扩展阅读:
举例说明:
int p; //这是一个普通的整型变量。
int *p; //首先从P 处开始,先与*结合,所以说明P 是一个指针,然后再与int 结合,说明指针所指向的内容的类型为int 型.所以P是一个返回整型数据的指针。
int p[3]; //首先从P 处开始,先与[]结合,说明P 是一个数组,然后与int 结合,说明数组里的元素是整型的,所以P 是一个由整型数据组成的数组 。
int *p[3]; //首先从P 处开始,先与[]结合,因为其优先级比*高,所以P 是一个数组,然后再与*结合,说明数组里的元素是指针类型,然后再与int 结合,说明指针所指向的内容的类型是整型的,所以P 是一个由返回整型数据的指针所组成的数组。
int (*p)[3]; //首先从P 处开始,先与*结合,说明P 是一个指针然后再与[]结合(与"()"这步可以忽略,只是为了改变优先级),说明指针所指向的内容是一个数组,然后再与int 结合,说明数组里的元素是整型的.所以P 是一个指向由整型数据组成的数组的指针。
int **p; //首先从P 开始,先与*结合,说是P 是一个指针,然后再与*结合,说明指针所指向的元素是指针,然后再与int 结合,说明该指针所指向的元素是整型数据。由于二级指针以及更高级的指针极少用在复杂的类型中,所以后面更复杂的类型就不考虑多级指针了,最多只考虑一级指针。
int p(int); //从P 处起,先与()结合,说明P 是一个函数,然后进入()里分析,说明该函数有一个整型变量的参数,然后再与外面的int 结合,说明函数的返回值是一个整型数据。
Int (*p)(int); //从P 处开始,先与指针结合,说明P 是一个指针,然后与()结合,说明指针指向的是一个函数,然后再与()里的int 结合,说明函数有一个int 型的参数,再与最外层的int 结合,说明函数的返回类型是整型。
所以P 是一个指向有一个整型参数且返回类型为整型的函数的指针。
int *(*p(int))[3]; //可以先跳过,不看这个类型,过于复杂从P 开始,先与()结合,说明P 是一个函数,然后进入()里面,与int 结合,说明函数有一个整型变量参数,然后再与外面的*结合,说明函数返回的是一个指针。
然后到最外面一层,先与[]结合,说明返回的指针指向的是一个数组。然后再与*结合,说明数组里的元素是指针,然后再与int 结合,说明指针指向的内容是整型数据.所以P 是一个参数为一个整数据且返回一个指向由整型指针变量组成的数组的指针变量的函数.
‘捌’ C语言指针基本概念及其指针变量的定义是什么
指针是常见间接访问方式.指针就像一个快捷方式,它指向内存的一个地址,可以通过指针就可以间接的访问到数据。对于计算机,访问内存的方式有两种,直接访问和间接访问。直接访问通过就是通过变量名称去访问。指针概念是构成C/C++的重要元素之一,是变量的一种类型,存放的是指定类型数据的地址,而同类型变量存放的是数据。
指针变量:就是一个变量,其值是可变的,与整形变量、浮点变量等等的命名规则完全相同。 “指针”是概念,“指针变量”是具体实现。指针类型说明,即定义变量为一个指针变量; 指针变量名; 变量值(指针)所指向的变量的数据类型。
(8)c语言中文网指针扩展阅读:
与其他高级编程语言相比,C 语言可以更高效地对计算机硬件进行操作,而计算机硬件的操作指令,在很大程度上依赖于地址。指针提供了对地址操作的一种方法,因此,使用指针可使得 C 语言能够更高效地实现对计算机底层硬件的操作。另外,通过指针可以更便捷地操作数组。在一定意义上可以说,指针是 C 语言的精髓。