c语言指针定义,有什么用,作用有 C语言中指针的作用是什么?

作者&投稿:萧嘉 (若有异议请与网页底部的电邮联系)
指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; 能很方便地使用数组和字符串; 并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了C语言的功能。 学习指针是学习C语言中最重要的一环, 能否正确理解和使用指针是是否掌握C语言的一个标志。同时, 指针也是C语言中最为困难的一部分,在学习中除了要正确理解基本概念,还必须要多编程,上机调试。只要作到这些,指针也是不难掌握的。
指针的基本概念在计算机中,所有的数据都是存放在存储器中的。 一般把存储器中的一个字节称为一个内存单元, 不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等。为了正确地访问这些内存单元, 必须为每个内存单元编上号。 根据一个内存单元的编号即可准确地找到该内存单元。内存单元的编号也叫做地址。 既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这个地址称为指针

C语言_071_指针的定义和使用_上



C语言中的指针到底有什么用~

所有变量值保存在内存中,而每个内存都有一个地址,所谓地址就是一个整数编号,如同门牌号码用于定位(专业术语叫寻址),一个地址对应一个字节(8bit)的内存单元。

如今的编译器,一个整数int类型的值占用32位bit,也就是4字节,编译器将第一个字节的编号定义为该整数的地址,由于保存地址的变量就像一个箭头指向某地址,而称为指针变量。

int a =10; //定义一个整数变量a,对其赋值10
int *p =&a;//定义一个指针变量p,对其赋值a的内存地址,&符号意思为引用跟随其后的变量地址。

cout <<a<<endl; //输出 a的值:10
cout << p << endl ;// 输出p的值:XXXXX 其实为a的地址,该地址由编译器和运行时确定。
cout << *p <<endl; //输出p指向的地址中的值:10,也就是a的值,*星号放在变量前面意思就是取该变量中的地址所指内存中的值。
读取过程为:p的值(a的地址)->寻址->取值

由于指针是一个变量的首个字节的地址,所以要告诉编译器被指地址包含连续多少个字节,因此指针也有类型。比如上面例子中声明了p指针是个整数指针,这样编译器知道p指向一个4字节的内存块。

你可以将指针变量看做一般的整数变量来理解,用来保存一个整数(地址是个整数),只是,该整数代表着某地址,在这里是a的地址。

在C/C++中很灵活,但是也很危险,也很难学,如果指针指向错误的地址会引起程序崩溃,因此在C#中已经被微软封装了,但内部还是有指针的。

如果有必要,C#中也可以使用指针,使用非安全代码,在项目生成选项卡中勾选“允许非安全代码”,然后就可以使用指针了,不过不建议这么做。
unsafe
{
int a = 10;
int* p=&a;
}

  简单地说指针就是指向变量和对象的地址。
  指针的用途非常广泛,比如如果你想通过函数改变一个变量的值,就得用指针而不能用值传递。还有在很多时候变量,特别是对象的数据量实在太大,程序员就会用指针来做形参,只需要传递一个地址就行,大大提高了效率。
  以上还只是指针的初步应用,随着你在C语言学习上的逐步深入,你会发现更多的用途的。

c语言中函数指针是什么 有什么用 举个实例
答:函数指针有两个用途:调用函数和做函数的参数。函数指针的声明方法为:返回值类型 ( * 指针变量名) ([形参列表]);如:int func(int x); /* 声明一个函数 */ int (*f) (int x); /* 声明一个函数指针 */ f=func; /* 将func函数的首地址赋给指针f */ 或者使用下面的方法将函数地址赋...

指针的作用老鸟来
答:解决系统堆栈空间的溢出问题,可以.更为灵活的使用内存。*就是指针运算符; 注意区别 初始化时 int a;int *p=&a ; 赋值时 int a,*p; p=&a; *的作用是取地址里的操作数; *p==a;指针变量里面就是整型的一个十六进制数,用来表示的就是指向某个变量的地址指针是C语言中广泛使用的一种...

c语言中的指针应该怎么理解?
答:(3)int **ptr; //指针所指向的的类型是 int * (4)int (*ptr)[3]; //指针所指向的的类型是 int()[3] (5)int *(*ptr)[4]; //指针所指向的的类型是 int *()[4] 在指针的算术运算中,指针所指向的类型有很大的作用。 指针的类型(即指针本身的类型)和指针所指向的类型是两个概念。当你对C...

c语言什么时候使用数组,什么时候使用指针?
答:指针要么指向数组,要么指向变量,要么动态申请内存。NULL指针,只是一个方便的指针,表示不指向任何对象。真正有用的还是指向具体对象的指针。如果定义了一个指针,使用时要让他指向一个具体对象,当需要他不指向什么对象的时候,给他赋值为NULL;PS:C语言,数组名只是一个指针常量而已,离开定义可见处,...

C语言的指针有什么用?
答:由于c语言是一种比较低级的语言,所以包括了许多对硬件操作的部分,直接对内存进行操作会带来很多方便。和其它变量一样,指针是基本的变量,所不同的是指针包含一个实际的数据,该数据代表一个可以找到实际信息的内存地址。这是一个非常重要的概念。许多程序和思想依靠指针作为他们设计的基础。指针是c的精髓...

C语言指针
答:这样一来,凡是出现数组,函数的地方都可以用一个指针变量来表示,只要该指针变量中赋予数组或函数的首地址即可。这样做,将会使程序的概念十分清楚,程序本身也精练,高效。在C语言中,一种数据类型或数据结构往往都占有一组连续的内存单元。 用“地址”这个概念并不能很好地描述一种数据类型或数据结构,...

请问在C++中使用指针的好处有哪些?
答:(short*)&buf[0]=cmdID;(short*)&buf[2]=type;(int*)&buf[4]=value;3.字符串指针,是使用最方便,且常用的。4.函数指针,形如:#define PMYFUN (void*)(int,int),可以用在大量分支处理的实例当中,如某通讯根据不同的命令号执行不同类型的命令,则可以建立一个函数指针数组,进行散转。...

C语言中“指针”和“指针变量”的区别是什么??
答:1、概念不同 “指针”是概念,“指针变量”是具体实现,指针也是一个变量,所以需要进行定义,而对于指针的定义,与一般变量一样。2、 存放地址不同 一个变量的(内存)地址称为该变量的“指针”,通过指针能找到以它为地址的内存单元。而指针变量是用来存放另一个变量的地址的(即指针)。

C语言里面指针到底有什么作用啊
答:可以把指针比作抽屉,或者门牌号码,里面存装的才是实际的内容,比方说,第三个抽屉里装着三个苹果,那么你可以把{“3”号抽屉}当做指针,当你想要那三个苹果的时候就可以打开它把苹果拿出来了。或者你要找一个叫做张飞的人,如果你知道他住在*大街*号,那么就可以通过访问这个地址来找到对应的人了...

指针与指针变量的概念是什么?
答:1、指针,是C语言中的一个重要概念及其特点,也是掌握C语言比较困难的部分。指针也就是内存地址,指针变量是用来存放内存地址的变量,不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。有了指针以后,不仅可以对数据本身,也可以对存储...