我是C的新手,我正试图抓住指针.我偶然发现了这个表达
char *foo = *(char **)bar;
Run Code Online (Sandbox Code Playgroud)
到底发生了什么?我明白*指针**是指向指针的指针,但我并不是真的得到了什么*(char **)bar
编辑:值得一提的是,bar被声明为const void*bar
*(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)