c语言指针问题和case

img


各位大佬:
请问那个*(-p)是什么意思呀?
还有为什么case1没有语句了还能输出一个9来?

写错了把,应该是--p
*(--p)先执行--p,然后取p指向地址的值。
case 1后面没有break,所以j=1的时候,会继续执行case 2,然后break

case 1由于没有break,所以会继续执行后续的case语句的
因此case 1和case 2执行相同的代码
--p使得指针向后移动,从指向11改为指向9。加*号表示输出该地址的值,即9