一个字符串+一个整数结果是?

#include <stdio.h>
#include <string.h>
char fun(char *p)
{ 
    int L=strlen(p)-1;
    char *q=p+L;
    while (p<q) 

    { 
    if ((*p++) != (*q--))
          return 0; 
    }
    return 1;
}  

void main()

{
      char str1[]="acba";
      int i=fun(str1);
      printf("%d \n",i);
}

第五行不知道是什么意思,愿听大佬讲解这是什么操作
(如果身边把其他每行也解释一下就更好了,我还是个)
用debug显示此时的*q=a

char *q=p+L;表示定义一个指针,指向字符串最后一个元素的地址;
程序功能是判断一个字符串是否是回文数

第五行是指:int L=strlen(p)-1;?

char是字符型变量的声明方式,严格来说是它其实也是整数类型(integer type),因为 char 类型储存的实际上是整数,而不是字符,计算机使用特定的整数编码来表示特定的字符,所以它+整数之后还是整数,但代表的却是另一个字符,如果是一个字符串+整数=一个新的字符串