早教吧 育儿知识 作业答案 考试题库 百科 知识分享

为什么p[i]=*(p+i)请回答的详细一点,最好是用举例子证明的

题目详情
为什么p[i] = *(p+i)
请回答的详细一点,最好是用举例子证明的
▼优质解答
答案和解析
p[i]的意思就是从地址p开始向后偏移i个单位后的地址空间内的值
*(p+i) 也是上面的意思
[]实际上就是个地址偏移操作符 ,c语言编译器就是把p[i]转换成*(p+i)处理的,p[i]和*(p+i)无条件等价
比如有数组int p[4]={1,2,3,4};
p就是这个数组的首地址
p[2]就是从p开始偏移2个int单位后的地址内的值 就是3
*(p+2) 这个更好理解,p+2就是在p的基础上+2个int单位的地址,那么*(p+2)就是这个地址内的值:3