蓉杠学习网

c语言 定义指针,c语言定义指针数组

大家好,今天小编关注到一个比较意思的话题,就是关于c语言 定义指针问题,于是小编就整理了3个相关介绍c语言 定义指针的解答,让一起看看吧。

  1. C语言中文件指针如何定义?如何指向文件?
  2. c语言指针到底有什么用?
  3. C语言为什么要引入指针?

C语言中文件指针如何定义?如何指向文件?

指针本身也是一种变量,有它自己内存地址空间。const指针有两种形式type * const nametype const *name第一种为常量指针,不能修改指针指向的地址第二种为指向常量的指针,不能修改指针指向的内存地址里保存数据

c语言指针到底有用?

C语言中指针有以下三种用途:

c语言 定义指针,c语言定义指针数组div>
图片来源网络,侵删)

1.

指针的使用使得不同区域的代码可以轻易的共享内存数据,这样可以使程序更为快速高效;

2.

c语言 定义指针,c语言定义指针数组
(图片来源网络,侵删)

C语言中一些复杂的数据结构往往需要使用指针来构建,如链表、二叉树等;

3.

C语言是传值调用,而有些操作传值调用是无法完成的,如通过被调函数修改调用函数的对象但是这种操作可以由指针来完成,而且并不违背传值调用。

c语言 定义指针,c语言定义指针数组
(图片来源网络,侵删)

C语言为什么要引入指针?

C语言是贝尔实验室两位***在研发unix的时候顺带研发的副产品,当初发明C语言是为了写操作系统,传统上写操作系统都只能用汇编语言,因为操作系统是直接针对硬件的,高级语言不具备这个功能汇编语言实在是不好用编写程序的效率太低而且无法移植,于是两位***就想到了发明一种介于汇编语言和高级语言之间的,可以直接针对硬件的语言,最初第一版叫B语言,然后进行了改进就叫C语言,其中指针就是一个重要发明,在C语言中指针的意思是指向某个变量的地址,这个变量可以是各种数据类型,显然这是可以直接操作硬件的。最初C语言并没有单独公开发表推广,后来随着UNIX的流行而推广流行开了。

几乎所有的编程语言都需要对内存地址进行操作,只不过C语言是显式,其他语言是隐式的。可以从机械运算原理和实际的应用方法两个方面来理解这个问题。

机械运算需要地址操作

打个比方,给你一排计算器。每个计算器上都有一个内存,用M,MR,MC进行内存的读写擦除。在不同的计算器上进行分步计算,利用内存传递中间结果,就可以完成复杂的计算任务。不停地切换计算器的动作就相当于地址操作了。一台计算机相当于由大量的计算器组成的,而程序则规定了在计算器之间切换的步骤。从图灵机到冯氏架构,都可以理解为这样的方式。计算机程序必须得有地址操作,编程语言中出现代表地址的指针也就不足为奇了。但是,地址操作不符合我们的思考习惯,人们还是希望能够隐藏地址操作,赋予地址操作比较接近自然语言的意义。

被隐藏了的指针

C#中,用ByRef关键字定义指针,而用ByVal关键字定义值。而Java则刻意隐藏了指针的概念。但下面这个例子中还是漏出了马脚:

String str=“Hello”;

String ptr=new String(“Hello”);

一行中的变量是值,用它传参相当于复制了自己也就是值传递。而第二行的参数是一个指针,用它传参虽然也会***自己,但是由于它是字符串的首地址,相当于[_a***_]传递。如果你留意一下几乎每种语言里都能找到指针的影子。能完全无视指针的语言大概只有SQL吧。这种语言是迄今为止最高级的语言,有人把它称为第五代语言。

首先,指针就是内存地址。而内存地址计算机中自然存在的东西,所以不存在c语言引进指针这种说法。

那其它语言中没有指针呢?那是因为在这些语言中指针被抽象了、屏蔽了计算机硬件相关的概念,比如J***a、C#。这使得这些语言更安全、更容易使用。但同时也使得这些语言丢失了直接操作硬件的便利。

C语言之所以保留指针,是为了它满足它的设计需求:重写unix操作系统。而操作系统是需要直接操作硬件的,同时也需要程序直接反映内存或寄存器中的数据。这使得c语言直观并且高效,非常适合编写底层的、高效的程序。

到此,以上就是小编对于c语言 定义指针的问题就介绍到这了,希望介绍关于c语言 定义指针的3点解答对大家有用。

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.rongung.com/post/37021.html

分享:
扫描分享到社交APP