gpt4 book ai didi

objective-c - Sizeof C 整数数组(在 Obj-C 中)

转载 作者:太空宇宙 更新时间:2023-11-04 06:08:52 26 4
gpt4 key购买 nike

我的类.h:

#define BUTTON_NAVI 41;
#define BUTTON_SETTINGS 42;
#define BUTTON_INFO 43;

我的类.m:

int btnNavi = BUTTON_NAVI;
int btnSettings = BUTTON_SETTINGS;
int btnArray[2] = {btnNavi, btnSettings};
NSLog(@"count = %i", sizeof(btnArray));
[self addToolbarButtons:btnArray];

-> 日志:计数 = 8

8?我做错了什么?

在“addToolbarButtons”里面计数是 4...:-(

编辑:

- (void)addToolbarButtons:(int[])buttonIdArray {
NSLog(@"count = %i", sizeof(buttonIdArray));
}

-> 日志:计数 = 4

最佳答案

sizeof 以字节为单位给出大小,8 字节听起来适合 2 个整数(每个 32 位或 4 字节)。

如果您想要的是数组的长度,您可以执行sizeof(arr)/sizeof(arr[0]),这将为您提供大小整个数组除以每个元素的大小。在这种情况下,您将得到 8/4 == 2,这正是您所期望的。

编辑要回答您的第二个问题,当您将数组传递给方法时,您实际上是在将一个指针 传递给该数组。因此,指针的大小也是 32 位或 4 字节。如果您希望函数知道数组的长度,您还需要将其长度与所述指针一起传递。

关于objective-c - Sizeof C 整数数组(在 Obj-C 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4786383/

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