在循环结束后,p不会保存循环后所指的地址。循环中p是按照递增的方式移动的,所以在循环结束后,p指向的位置不再是数组a的第一个元素地址。

代码解析:

#include<stdio.h>
void inverse(int * , int );
void main()
{
int a[10]={33,8,0,44,5,6,7,7,8,6,};
int *p=a;
int *q;
for(p;p<p+9;p++ )
{
  t=*p ; *p=*q ; *q=t;
}
}

解释:

  • int *p=a; 初始化指针p指向数组a的第一个元素。
  • for(p;p<p+9;p++ ) 循环中,p不断递增,指向数组a的下一个元素。
  • 循环结束时,p指向数组a的最后一个元素。由于循环中的递增操作,p不再指向数组a的第一个元素地址。

总结:

在C语言中,循环结束后,指针不会保存循环过程中最后一次指向的地址。指针p指向的位置会随着循环的进行而改变,最后指向数组a的最后一个元素。

C语言数组逆序交换:指针p指向位置解析

原文地址: https://www.cveoy.top/t/topic/bLFb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录