Objective-C 中声明指针变量时 星号( *)如何安放 居左or居右

原创 2015年11月18日 11:59:38

这里先举一个例子 

    NSString *str1 = @"str1";
    NSString* str2 = @"str2";

这两个编译器都可以通过,都是正确的,那么这个烦人的星号到底需要放在那里?


那就得先说说这个星号 * 存在的意义了

* 代表着要访问某一个地址中的数据,或者可以理解为返回值是指针类型的数据,

所以基础变量时不需要加 * 的,就像

    int i = 0;
    int j = 1;

下面把上面的例子拆开来分析一下:

NSString    代表通知编译器内存中的数据类型

   str1         是一个指针既这块内存的地址

  *str1         代表取出str这个内存地址中的数据

反之 NSString* 则没有什么实际意义(如果认为是指向NSString类型的指针未免有些强词夺理)


所以大多数人还是喜欢写成

    NSString *str = @"str";

这样写才能说得通。

还有一个办法可以通过xcode检测一下

    NSString str = @"str";

xcode 会提示错误的,不仿看一看xcode怎么提示的吧 (-:

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Objective-C 里指针变量星号 * 你会放在哪个位置

Objective-C 里指针变量星号 * 你会放在哪个位置 2011-06-17 — Unmi 话说在 Objective-C 里声明指针变量时,星号(*) 该放到哪个位置,是紧贴变量类型,紧...

Objective-C编程:在类的外部声明全局变量

进来学习iOS开发,在研究通知中心的机制(notification center)时,编写了如下代码,首先自定义一个类: @interface Test1NotificationMy1 : NSOb...
  • laso
  • laso
  • 2013-09-05 11:07
  • 930

[Objective-C]C语言特性(函数,变量,编译指令,指针,块)

!!这部分讲解的是OC对于C语言特性的继承,包括小范围的扩展,因此关于每个点只强调一些重要的内容以及OC的扩展内容 1. 函数定义:     1) 如果没有写返回值类型,则默认为int类型;   ...

Objective-c中@property声明时的参数释疑

@property和@synthesize有以下两个作用: 1.作用一 @property是在头文件.h中声明一个变量的setter和getter方法。 @synthesize是在.m文件中定义se...

Objective-c中@property声明时的参数释疑02

@property和@synthesize有以下两个作用: 1.作用一 @property是在头文件.h中声明一个变量的setter和getter方法。 @synthesize是在.m文件中...

C 下标法 首地址法 指针变量法

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1...

error C4703: 使用了可能未初始化的本地指针变量

转自:http://www.vcerror.com/?p=1514 问题描述: 在用VS2012编译时出现下面的错误 error C4703: 使用了可能未初始化的本地指针变量“eo...

C/C++中,为什么字符串可以赋值给字符指针变量,单引号和双引号的区别

本文是通过几篇转帖的文章整理而成的: http://www.slyar.com/blog/c-quotation-marks.html http://www.cnblogs.com/KingOfFr...

Objective-C Runtime 运行时之二:成员变量与属性

在前面一篇文章中,我们介绍了Runtime中与类和对象相关的内容,从这章开始,我们将讨论类实现细节相关的内容,主要包括类中成员变量,属性,方法,协议与分类的实现。 原文:http://www.c...

Objective-C Runtime 运行时之二:成员变量与属性

在前面一篇文章中,我们介绍了Runtime中与类和对象相关的内容,从这章开始,我们将讨论类实现细节相关的内容,主要包括类中成员变量,属性,方法,协议与分类的实现。 本章的主要内容将聚集在Runt...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)