C语言数组逆序交换:指针p指向位置解析
在循环结束后,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的最后一个元素。
原文地址: https://www.cveoy.top/t/topic/bLFb 著作权归作者所有。请勿转载和采集!