我是c语言初学者!我想请教下!在c语言中为什么要引入指针这个概念!它的微妙之处在哪里?有大神帮我分

我是c语言初学者!我想请教下!在c语言中为什么要引入指针这个概念!它的微妙之处在哪里?有大神帮我分析分析!最好举例说明下!

C语言引入指针,是为了直接操作计算机内存。这个功能使得可以用C语言写操作系统、驱动程序之类系统底层的程序。
指针的微妙之处:
1、每个指针本身有一个对应的内存单元,这个内存单元中可以存放别的变量、函数等等的内存地址。
2、指针是有类型的。如char*,int*,float*,double*,void*等等。
3、指针类型,决定了指针+1,-1等操作实际移动的距离。移动的距离是对应类型的sizeof()值。
换句话说,指针+1,-1不是移动一个内存单元。
4、指针要指向某个实际对象,或者通过malloc()函数给它分配一个内存后,才有了确定的意义,才能进行操作。否则会出错!
5、指针操作,越界了,编译程序不知道,常常引起系统错误,甚至破坏系统!!
6、指针也可以指向指针,或者指针的指针。比如int **p。这个有时会让人很困惑。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-01-04
在计算机中,所有的数据都是存放在存储器中的。一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等,在前面已有详细的介绍。为了正确地访问这些内存单元,必须为每个内存单元编上号。根据一个内存单元的编号即可准确地找到该内存单元。内存单元的编号也叫做地址。既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这个地址称为指针。

内存单元的指针和内存单元的内容是两个不同的概念。 可以用一个通俗的例子来说明它们之间的关系。我们到银行去存取款时,银行工作人员将根据我们的帐号去找我们的存款单, 找到之后在存单上写入存款、取款的金额。在这里,帐号就是存单的指针, 存款数是存单的内容。对于一个内存单元来说,单元的地址即为指针,其中存放的数据才是该单元的内容本回答被提问者采纳
第2个回答  2014-10-08
因为C语言开发时是基于B语言的,当时它的开发要考虑到机器语言和一般编程语言的特点,所以他便具有了机器语言的一些特点,最基本的是要能够对内存进行直接操作,如何实现这一功能?天才的设计者就想出来用指针来实现这一功能。
相似回答