strcat_s的用法是什么样的

#include<stdio.h>
#include<string.h>
int main()
{
char s[20] = "abcd";
char *sp = s;
strcat_s(sp+1, 10, "ABCD"+1); //如果这里改成++,运行结果又会不一样,为什么?
puts(sp);
return 0;
}

strcat_s:在第一个参数与第二个参数连接后,得到的东西的总大小(包括'\0')不能超过第二个参数(单位字节)。

img

至于++:++是本身加1,也就是说sp本身被移动到后一位了。
而sp+1,只是表示sp+1后面的个数,sp本身没有变化。
就像a = 1,a++,这时a变成了2。而a+1,a自身大小没有变化