`
ya916
  • 浏览: 3037 次
  • 性别: 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是一种基于C语言的面向对象编程语言,它是苹果公司Mac OS X和iOS操作系统的主要开发语言。Objective-C的特性使其成为构建Cocoa框架应用程序的理想选择。以下是对Objective-C关键概念的详细解释: 1. **...

    objective-c学习笔记

    这篇“Objective-C学习笔记”旨在帮助初学者理解并掌握这种强大的编程工具。 一、Objective-C基础 1. 类与对象:Objective-C中的所有操作都是基于类的,类是对象的模板,而对象是类的实例。理解类和对象的概念是...

    Objective C 学习笔记.pdf

    Objective C 学习笔记

    objective c学习笔记

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

    Objective-C 学习笔记

    总的来说,Objective-C作为iOS开发的重要语言,其面向对象的特性、与C语言的兼容性以及强大的Cocoa框架,使得开发者能够构建功能丰富的iOS应用程序。学习Objective-C的基础知识和面向对象编程概念对于理解iOS开发至...

    Objective-C程序设计笔记

    Objective-C程序设计笔记涵盖了Objective-C语言的基础知识点,其中包含多个关键部分,如数据类型、类的定义与扩展、协议的使用、块的定义与应用、内存管理等方面。下面将详细阐述这些内容: 1. 键盘输入:在...

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

    C语言是计算机编程的基础,它是Objective-C的重要基石。在学习Objective-C之前,深入理解C语言的知识点至关重要。C语言以其高效、简洁和灵活性被广泛应用于系统编程、嵌入式开发、游戏引擎等领域。本资料主要涵盖了...

    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自学笔记中涉及的一些核心概念和基础知识。在深入学习时,还需要了解如何使用UIKit创建视图、控制器、事件处理等,以及更高级的主题,如内存管理策略ARC(Automatic Reference Counting)...

    Effective Objective-C 2.0 学习笔记目录

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

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

    Objective-C和C语言混编的计算器是一个典型的iOS应用开发实例,它结合了两种编程语言的特点,以实现更高效、灵活的代码结构。Objective-C是Apple的面向对象编程语言,广泛用于iOS和macOS的开发,而C语言则是一种底层...

    Objective-C语言入门教程&深入浅出,理论实践相结合.pdf

    Objective-C语言入门教程&深入浅出,理论实践相结合 Objective-C语言入门教程&深入浅出,理论实践相结合 Objective-C语言入门教程&深入浅出,理论实践相结合 Objective-C语言入门教程&深入浅出,理论实践相结合 ...

    objective c语言基础教程

    Objective-C 是一种基于 ANSI C 的面向对象编程语言,它的语法受到 Smalltalk 影响,同时兼容标准的 C 语言。Objective-C 的核心特性包括面向对象的特性,如封装、继承和多态。对于初学者来说,理解这些概念是学习 ...

    Objective-C基础教程(入门教程).pdf

    Objective-C是一种广泛用于苹果平台应用程序开发的编程语言,它是C语言的一个超集,并加入了Smalltalk风格的消息传递机制。本篇教程主要面向初学者,介绍了Objective-C的基础知识点和一些核心概念。 1. Objective-C...

    Objective-c语言学习-快速入门完整版完整版

    Objective-C是在C语言基础上扩展的,引入了Smalltalk的面向对象特性,如消息传递机制,使得代码更加灵活和可扩展。 "第二讲 数据类型、运算符和表达式"深入讲解了基本的数据类型,包括整型、浮点型、字符型等,以及...

    objective-c编程入门学习笔记

    Objective-C中的打印输出主要通过`NSLog`函数完成,其用法类似于C语言的`printf`函数,但是使用`@`符号作为字符串的前缀。 ```objective-c NSLog(@"Hello, World!"); ``` ##### 2. 变量与运算 Objective-C支持多种...

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

    C++起源于C语言,强调面向对象编程,而Objective C则是在C的基础上扩展了面向对象特性,主要用于苹果的iOS和Mac OS X开发。从C++过渡到Objective C的学习之旅是一条富有挑战的道路,但同时也充满了机遇。以下是一些...

    Objective-C学习资料(内置学习笔记,各内容源码)

    Objective-C是在C语言基础上扩展的,引入了Smalltalk式的消息传递机制,使得它能够支持面向对象编程。它的语法中,类、对象、方法和协议等概念是核心元素。 1. **类与对象**:Objective-C中的所有数据都是通过对象...

    Objective C 串口通信源码

    Objective C 是苹果公司开发的一种面向对象的编程语言,主要用于iOS和Mac OS X操作系统。在给定的"Objective C 串口通信源码"中,我们可以深入探讨如何在Mac OS环境下利用Objective C进行串行通信,这涉及到硬件接口...

Global site tag (gtag.js) - Google Analytics