我有一个包含以下值的数组和一个设置为0的变量,该数组在向数组添加字节时会增加:
data = [0, 0, 0]
position = 0
我在数组中添加一个字节:
data[position++] = 1
现在是:
data = [1, 0, 0]
position = 1
我的问题:数组中的1是1,该字节的位置是 0 ,但我的位置是 1. 如何设置该字节的位置到 1 ?
所以我可以这样得到:
data[position] <- Returns **1** -> data[1]
现在,当我使用data[position]
时,它返回0
答案 0 :(得分:4)
使用data[++position] = 1
代替data[position++] = 1
。
刚刚发生了什么?
如果您使用i ++(后缀),position
增加1,但position
的旧值将返回到数组索引,如{{1} }。
如果使用++ i(前缀),data[0]
增加1,position
的 new 值将返回到数组索引中,如{{ 1}}。
在这种情况下,首先使用前缀 position
增加1和1将被分配到数组的第一个元素而不是第0个元素。
答案 1 :(得分:2)
通过使用后缀增量,当在data[position++]
中访问时,位置仍为0,并且仅在被访问后才添加+1值。所以你基本上做data[0] = 1
。使用++position
以便在访问其值之前递增位置。
答案 2 :(得分:1)
要回答您的确切问题,您可以这样做:
data[position - 1]
注释: 但你的问题不明确是真的。当你说'#34;一个设置为0的变量,当增加字节到数组时会增加#34;这意味着当你向数组添加另一个字节时,比如说
data[2] = 0
现在数据== [1,0,1]。但是,职位仍然等于1.谁负责增加position
?
那么你想在这里发生什么?