奇怪的运算符与指针

Ral*_*lph 1 c++ pointers operators

我正在阅读一些代码并遇到了这个问题.我现在没有整个上下文保存这一行.

cout<<(*--*++ptr+1)<< endl;
Run Code Online (Sandbox Code Playgroud)

这个编译很好,当我们在其中输入值时工作.

它的声明是这样的.

char ***ptr ;
Run Code Online (Sandbox Code Playgroud)

这个运营商是什么,它是否包含在标准中?

Ada*_*eld 7

它不是一个单一的运营商,而是几个一元运营商的组合.它被解析如下:

*(--(*(++ptr))) + 1
Run Code Online (Sandbox Code Playgroud)

因此,ptr1首先递增,然后解除引用,然后该值递减并再次取消引用.