作业帮 > 综合 > 作业

设有定义int a[]={1,3,5,7,9},*p=a; while(*p!=3) p++; 结果为7的表达式是:*(

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/19 10:29:42
设有定义int a[]={1,3,5,7,9},*p=a; while(*p!=3) p++; 结果为7的表达式是:*(p+2)能否详细解释下
int a[]={1,3,5,7,9},*p=a; //定义一个数组a,共五个元素;同时定义一个指针p指向数组a的首地址
p -> a[0]=1 即p是a[0]的地址
p+1 -> a[1]=3 p+1是a[1]的地址,下同
p+2 -> a[2]=5
p+3 -> a[3]=7
p+4 -> a[4]=9
while(*p!=3) p++; //*p是取地址中的内容(数据),当*p不是3时,p++完成向后移动一个数据
当*p==3时,p当前值为 原p+1 ,即指向a[1]
此时的p +1指向a[2]=5
所以,此时的p +2指向a[3]=7
即:*(p+2)==7
再问: 怎么确定的p当前值为p+1呢?
再答: 再读一遍我的回答哦