解释指针问题的指针

web*_*vet 2 c

我是C的新手,我正试图抓住指针.我偶然发现了这个表达

char *foo = *(char **)bar;
Run Code Online (Sandbox Code Playgroud)

到底发生了什么?我明白*指针**是指向指针的指针,但我并不是真的得到了什么*(char **)bar

编辑:值得一提的是,bar被声明为const void*bar

Ed *_* S. 8

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

铸造bar的指针指向char和取消引用,这导致一个指针char(即,char*).

请记住,指针只是间接的.当您取消引用指针时,您"放弃一颗星",即:

char ***p = ...;
p    -> char***
*p   -> char**
**p  -> char*
***p -> char
Run Code Online (Sandbox Code Playgroud)