c语言-指针

        指针是C语言为什么如此流行的一个重要原因。指针可以有效地实现诸如tree和list这类高级数据结构。其他有些语言,如Pascal和Modula-2,也实现了指针,但它们不允许在指针上执行算术或比较操作,也不允许以任何方式创建指向已经存在的数据对象的指针。正是由于不存在这方面的限制,所以,用C语言可以比使用其他语言编写出更为紧凑和有效的程序。同时,C对指针使用的不加限制正是许多令人欲哭无泪和咬牙切齿的错误的根源。不论是初学者还是经验老道的程序员,都曾深受其害。
        变量的值存储于计算机的内存中,每个变量都占据一个特定的位置。每个内存位置都由地址唯一确定并引用,就像一条街道上的房子由它们的门牌号码标识一样。指针只是地址的另一个名字罢了。指针变量就是一个其值为另外一个(一些)内存地址的变量。C语言拥有一些操作符,你可以获得一个变量的地址,也可以通过一个指针变量取得它所指向的值或数据结构。不过,我们将在第5章才讨论这方面的内容。通过地址而不是名字来访问数据的想法常常会引起混淆。事实上你不该被搞混,因为在日常生活中,有很多东西都是这样的。比如用门牌号码来标识一条街道上的房子就是如此,没有人会把房子的门牌号码
和房子里面的东西搞混,也不会有人错误地给居住在“罗伯特·史密斯”的“埃尔姆赫斯特大街428号的先生”写
信。

      指针也完全一样。你可以把计算机的内存想象成一条长街上的一间间房子,每间房子都用一个唯一的号码进行标识。每个位置包含一个值,这和它的地址是独立且显著不同的,即使它们都是数字。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值