p[i]=*(p+i);
这个是怎么换算的????
p[i]=*(p+i);
这个是怎么换算的????
你这里的意思应该是两边等价的吧。首先要了解指针:
有一个内存地址编号 0 1 2 3 4 5 。。。。。。
当然这是假定的,我定义了一个char p[5];因为sizeof(char)等于1也就是说其在内存的偏移量就是1。假设首地址p = 0; 0是内存的地址编号。p是首地址代表的是地址的编号,而p[i] 就是编号为p+i上放的数据。
而*(p+1)就是代表编号放的数据。区别:内存地址 与 内存空间的数据。
如上 print p 等于0 则print p+i 就等于i .这是地址。当我定义int p[i]时,对于32-字节的计算机其内存地址就是p+4*i......