`
ya916
  • 浏览: 2859 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

objective c 中指针笔记

阅读更多
转载地址:(http://www.hengxinsoft.com/2010/12/objective-c-%E4%B8%AD%E6%8C%87%E9%92%88%E7%AC%94%E8%AE%B0/)

引用
本文章内容包含更深层次的概念并将处理一些C语言底层的概念,这些东西往往让初学者 头痛。如果你现在还看不懂也请先不要着急。尽管从大体上说理解指针的工作原理很有用,但对 Objective-C语言初级编程并不是那么重要。


当你定义一个变量,你的Mac微机就会将这个变量和一个内存空间关联起来以便储存这个变量 的值。
看看下面的例子:
[1] int x = 4;


为了执行这个语句,你的Mac微机在内存中找到没有被占用的空间并在那里储存变量x的值(当 然我们可以使用其它的变量名)。再看例[1],指明变量的类型(这里定义的是整型)就是让电脑知 道要留出多少空间来储存变量x的值。如果数值被定义为长整型或者双精度,那么则需要更多的内存 空间。

语句行“x = 4”的任务是将数值4存入预留的空间。当然,你的电脑知道在内存的哪个空间储 存着变量x的值,换句话说,它知道x的地址(address)。这样,每次在程序中使用x,你的电脑就 能找到正确的位置(在正确的地址)并找到x的确切值。

一个指针变量就是一个包含其它的变量地址的变量。

只要存在一个变量,你能够通过在它前面写上符号“&”来得到它的地址。比如要得到x的地址 则写成“&x”。
电脑为表达式x赋值,变量x就会返回一个数值(在我们的例子中返回的数值是4)。相比之下, 当电脑为表达式&x赋值,将返回变量x的在内存中的地址而不是存储在其中的数值。地址是表示电 脑的内存一个特定位置的数值(如同房间号表示旅馆的某一个特定房间)。

这样来定义一个指针变量:
[2] int *y;


上面的语句行定义了一个名为y的变量 ,它将代表另一个整型变量的地址。将变量x的地址存储 到指针变量y中(术语叫做将x的地址指派给y)你需要这样做:
[3] y = &x;


在指针变量前面加一个星号“*”得到的是指针所指向的内存存储空间内的数值。表达式“*y” 的值是4,它等同于表达式“x”。同理,如果执行了语句“*y = 5”则等同于“x = 5”。

指针之所以有用是因为有时候你不需要变量的数值,但需要用到变量的地址。比如编写一个函 数,内容是1加上一个变量,你就会用到变量地址。这是因为你会更改变量的值,而不总是使用当 前值。因此,我们这样使用指针:

[4]
void increment(int *y) {
    *y = *y + 1;
}


之后,你可以调用这个函数:
[5] int x = 4; increment(&x); // now x is equal to 5
分享到:
评论

相关推荐

    Objective-c学习笔记

    Objective-c学习笔记 Objective-c学习笔记

    Objective-C 学习笔记

    Objective-C 学习笔记 IOS软件开发

    Objective C 学习笔记.pdf

    Objective C 学习笔记

    objective c学习笔记

    Objective-C是一种简单的...Objective-C通过提供类定义,方法以及属性的语法,还有其他可以提高类的动态扩展能力的结构等,扩展了标准的ANSI C语言。类的语法和设计主要是基于Smalltalk,最早的面向对象编程语言之一。

    Objective-C学习笔记(一)OC基础.md

    这篇笔记主要介绍了Objective-C的一些基础知识,包括以下几个方面: 1. Objective-C概述,介绍了Objective-C的来源、发展历史和作为面向对象的C语言的特点。 2. 第一个OC程序,讲解了如何创建一个OC项目,解释了一些OC...

    objective c学习笔记和示例

    苹果的iPhone和iPad应用开发都指定使用同一开发语言:Objective-C语言。这是一种简单的面向对象编程语言,它的基础是C程序设计语言。Objective-C不仅功能强大,而且简单易学。Objective-C已经成为苹果系统下应用程序...

    Objective-C&UIKit自学笔记

    Objective-c、UIKit自学笔记

    Objective-C 2.0 运行时系统编程指南

    这儿的运行时系统扮演的角色类似于Objective-C语言的操作系统,Objective-C基于该系统来工作。本文档将具体介绍NSObject类以及Objective-C程序是如何和运行时系统交互的。特别地,本文档还给出来怎样在运行时动态地加

    C语言主要知识点巩固(学习Objective-C 的前提)

    C语言主要知识点巩固(学习Objective-C 的前提),PPT格式。

    Objective-C程序设计笔记

    Objective-C程序设计 ,Objective-C中常用类的常用方法总结截图

    Effective Objective-C 2.0 学习笔记目录

    Effective Objective-C是本学习Objective-C的好书,没有见pdf版,亚马逊上的这儿本书的价格不菲。让我们来看看书里的内容和完整的学习笔记吧。

    objective c语言基础教程

    objective c语言对于初学者有所帮助,

    objective-c学习笔记

    学习心得,对oc的简要讲解,图形解析,清晰明了。

    Objective-C程序设计

    《objective-c程序设计》通过大量的实例系统地介绍了objective-c语言的基本概念、语法规则、框架、类库及开发环境。读者在阅读《objective-c程序设计》后,可以掌握objective-c语言的基本内容,并进行实际的iphone/...

    Objective-C Runtime测试代码

    Objective-C语言的许多决策可以在编译和运行时执行。只要有可能,它是动态的。这意味着Objective-C语言不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。Runtime系统是一种用于Objective-C语言的操作系统...

    Objective-C语言教程

    希望这个简单的Objective-C语言教程能够为你提供一个入门的起点。Objective-C是一种面向对象的编程语言,广泛应用于Mac OS和iOS开发。通过学习Objective-C的基本语法、类和对象、控制流程和方法等内容,你将能够编写...

    Objective C基础教程(第2版

    Objective-C 程序中可以利用现有的C语言代码,使其利用现有的软件架构。这也是为甚莫Objective-C 过去多年间能够成为一种流行的用户界面开发语言而且至今没有消亡,因为一方面用它可以实现底层系统编程,另一方面...

    从C++到Objective C的学习之路

    从C++到Objective C的比较学习之路,C++ Objective C 笔记

    Objective-C和C语言混编的计算器

    自己在Xcode4下编写的Objective-C和C语言混编的计算器

    Objective-C程序设计(第4版)(全球最畅销Objective-C编程书籍)

    《Objective-C 程序设计(第4版)》作者假设读者没有面向对象程序语言或者C语言(Objective-C基础)编程经验,因此,初学者和有经验的程序员都可以使用这本《Objective-C 程序设计(第4版)》学习Objective-C。...

Global site tag (gtag.js) - Google Analytics