c语言中 关于指针运算后如何回拨到数组起始地址的问题

#define m 3
#define n 5
 int A[m+n]={2,4,6,1,3,5,6,7};
    for ( int x=0;x<m+n;x++)
    {
        printf("%d  ",*s);
        s++;
    }

 s=s-((m+n));//(*)

经过上述运算后,现在需要将指针s回拨到数组A的首地址,除了(*)的这种计算方法

在保证空间复杂度、时间复杂度不增大的情况下,还有其他的办法吗?

 #define m 3
#define n 5
int s = 0;
 int A[m+n]={2,4,6,1,3,5,6,7};
    for ( int x=0;x<m+n;x++)
    {
        printf("%d  ",*(A+s));
        s++;

    }
                s = s % (m + n);

给A[0]不是 更直接么,搞那么复杂