gpt4 book ai didi

objective-c - "static NSInteger const"和 "static const NSInteger"之间有什么区别吗?

转载 作者:太空狗 更新时间:2023-10-30 03:25:28 27 4
gpt4 key购买 nike

一般我看到的声明常量的代码是这样的:

static const NSInteger kNum = 1;
static NSString * const kStr = @"A";

我知道为什么const要写在NSString *后面,但是我不确定static NSInteger const kNum = 1;static const NSInteger kNum = 1; 相同

static NSInteger conststatic const NSInteger 有区别吗?

最佳答案

它们是一样的。常量类型可以通过编写以下之一从给定类型“派生”:

const type
type const

在这种情况下顺序无关紧要。

这些是指向常量数据的变量指针:

type const* var
const type* var

这意味着指针可以改变,但数据不能(除非你转换它)。您可以从右到左阅读它作为“指向常量 type 的指针”。

这是一个指向可变数据的常量指针:

type* const var

注意绑定(bind)。

这意味着不能使指针指向别处,但可以更改数据。您可以从右到左阅读它作为“指向类型的常量指针”。

可以像这样使指针和数据常量都不足为奇:

type const* const var
const type* const var

关于objective-c - "static NSInteger const"和 "static const NSInteger"之间有什么区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23604384/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com