后置++在赋值号左侧

后置++在赋值号左边
short* strs[3];
short str1[1] = {1};
short str2[1] = {2};
short str3[1] = {3};
strs[0] = str1;
strs[1] = str2;
strs[2] = str3;

//temp(strs, str1, 0, 3);
short l = 50, r = 60;
*strs[0]++ = l;
*strs[1]++ = r;

  int p[3] = {1, 2, 3};
// 
//  for (int i =0, j =50; i < 3; i++, j++)
//  {
  *p++ = l;
//  }

为什么编译的时候*strs[0]++ = l;没错,*p++ = l;却提示“'++' needs l-value”?
------解决方案--------------------
因为p是数组名,是常量指针,不能被改变。
------解决方案--------------------
strs[0] 为指针类型,可以进行++运算,而p为数组类型,不可进行++运算

示例:
int s[] = {1, 2, 3};
int *p = s;
p++; // 正确
s++; // 错误
------解决方案--------------------
写这样的代码,如果自己不能非常确定优先级,就加括号吧,不会累死人的。