剛接觸oc,遇到一個問題,請明白的講講道理。
示例代碼如下:
1. 在CMData類裡聲明了一個字節數組的屬性:
@property(nonatomic, assign) Byte * commandData;
const Byte buffer[] = {1,2,3,4,5,6,7,8,9,10};
CMData * data = [[CMData alloc] init];
data.commandData = buffer;
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