您好,登錄后才能下訂單哦!
小編給大家分享一下C++指針的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
面試題 (注意細節)
int main() { char *c[] = {"ENTER","NEW","POINT","FIRST"}; char**cp[] = {c+3,c+2,c+1,c}; char***cpp = cp; printf("%s\n", **++cpp); printf("%s\n", *--*++cpp+3); printf("%s\n", *cpp[-2]+3); printf("%s\n", cpp[-1][-1]+1); return 0; }
是不是看著看著就迷糊了,沒關系,咱們畫圖來談個究竟。
這樣一來看起來是不是明顯多了,但還是要仔細分析才能保證萬無一失。
先進行++p再進行兩次解引用.見下圖可知我們打印 POINT
先進行 ++CPP 然后解引用 再進行 -- 操作將C+1改變為C 接著再一次解引用 最后+3
我們這里打印結果是 ER
我們先進行CPP[-2]的操作,即相當于 *(CPP-2)但也要注意這里我們CPP的值并未發生改變
在這里我們(CPP-2)的指向用黑線表示,然后再一次解引用,最后+3,此時指向了圖中ST
所以我們這里打印ST
CPP[-1]即 *(CPP-1) 這里的CPP[-1][-1] 即相當于*( *(CPP-1)-1 ) 最后+1指向EW
最后我們運行程序來看看結果
以上是“C++指針的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。