程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> ios-Byte * 作為字節數組參數,為什麼返回只有8位?

ios-Byte * 作為字節數組參數,為什麼返回只有8位?

編輯:編程綜合問答
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個。
對指針還是不太了解,請大家解答下,謝謝。

最佳回答:


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

tyroshine
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved