这一小段c程序怎么理解?

int main(void)
{
char str[81];
char *p, temp;
int i,n,length;
gets(str);
for (p = str,i=0,n = strlen(str); i<n/2; i++)//将整个字符串倒序
{
temp = *(p+n-1-i);
*(p+n-1-i) = *(p+i);
*(p+i) = temp;
}
puts(str);

p = str;
length=0;

for实现的功能就是第一个和倒数第一交换,第二个和倒数第二个交换,第三个和倒数第三个,依次,直到中间

指针真的是个挺好玩的东西,不过我是搞Java的图片说明,把指针本身的地址,指针引用的地址,指针的含义琢磨琢磨,学c逃不掉的坎。咬咬牙慢慢啃图片说明

将字符串倒序,for循环将第n个和倒数第n个调换,实现倒序功能

主要是for循环里指针的理解,里面是进行的是首尾交换。学指针的时候不好理解就举个简单理解画图,单数、双数个字符的字符串,少一点点,然后耐心的推演两遍就明白了。

如一楼所说,将字符串以中心为界,对称字符互换。