我正在努力使用指针符号*,我发现它在声明和表达式中的使用方式非常混乱.
例如:
int *i; // i is a pointer to an int
Run Code Online (Sandbox Code Playgroud)
但是语法背后的逻辑是什么?*之前的*是什么意思?我们来看下面的例子.请纠正我错在哪里:
char **s;
char *(*s); // added parentheses to highlight precedence
Run Code Online (Sandbox Code Playgroud)
这就是我失去轨道的地方.parantheses之间的*s意味着:s是一个指针?但指针是什么?括号外的*是什么意思:指向s指向的指针?
所以这个意思是:指向s指向的指针是指向char的指针?
我不知所措.*符号在声明和表达式中的解释是否不同?如果是这样,它的解释方式有何不同?我哪里错了?