从工体到圣西罗 2014-12-16 15:39 采纳率: 33.3%
浏览 3104
已采纳

Byte * 作为字节数组参数,为什么返回只有8位?

刚接触oc,遇到一个问题,请明白的讲讲道理。
示例代码如下:
1. 在CMData类里声明了一个字节数组的属性:

 @property(nonatomic, assign) Byte * commandData;
  1. 在其他类中测试调用:
 const Byte buffer[] = {1,2,3,4,5,6,7,8,9,10};
 CMData * data = [[CMData alloc] init];
data.commandData = buffer;
  1. 打印结果
 NSLog(@"-->%@", [Helper ByteArrayToString:data.commandData andWith:sizeof(data.commandData)]);

结果是只有buffer中的前8个:
1,2,3,4,5,6,7,8

这种情况,不管是函数传参数还是返回值都是这样,这是什么原因?
但如果在声明完const Byte buffer[] = {1,2,3,4,5,6,7,8,9,10};后,直接sizeof buffer 是 10个。
对指针还是不太了解,请大家解答下,谢谢。

  • 写回答

3条回答 默认 最新

  • bdmh 移动开发领域优质创作者 2014-12-17 01:10
    关注

    你sizeof的是指针,所以返回的是指针的空间,32位是4,64位是8

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 如何实现从tello无人机上获取视频流,然后将获取的视频通过yolov5进行检测
  • ¥15 WPF使用Canvas绘制矢量图问题
  • ¥15 用三极管设计一个单管共射放大电路
  • ¥15 孟德尔随机化r语言运行问题
  • ¥15 pyinstaller编译的时候出现No module named 'imp'
  • ¥15 nirs_kit中打码怎么看(打码文件是csv格式)
  • ¥15 怎么把多于硬盘空间放到根目录下
  • ¥15 Matlab问题解答有两个问题
  • ¥15 LCD12864中文显示
  • ¥15 在使用CH341SER.EXE时不小心把所有驱动文件删除了怎么解决