c cp 和 cpp題目詳解

2021-07-22 16:23:02 字數 806 閱讀 6024

又是一道筆試題,看著就蛋疼,做著做著就懵逼了,雖然沒做對,但試著解釋下,下次不能在錯了!

題目:
char *c = ;

char **cp = ;

char ***cpp = cp;

cout << **++cpp << endl;

cout << *--*++cpp + 3<< endl;

cout << *cpp[-2] + 3 << endl;

cout << cpp[-1][-1] + 1 << endl;

結果:

world

lohi

ew因為:

++cpp:(++cpp)就是&cp[1],就是&&c[2],所以第一行結果為point,此時cpp已經變為&cp[1]

*--*++cpp+3:(++cpp)就是&cp[2],*++cpp就是c+1就是&c[1],--*++cpp就是&c[0],*--*++cpp就是c[0],*--*++cpp+3就是lo

*cpp[-2]+3:這時cpp變為&cp[2],cpp[-2]就是&cp[0],*cpp[-2]就是cp[0],就是c+3就是&c[3],*cpp[-2]+3就是hi

cpp[-1][-1]+1:這時cpp還是&cp[2],cpp[-1][-1]就是&cp[1][-1]就是c[1],cpp[-1][-1]+1就是ew

自己畫了張圖,加深理解,略抽象了。。。

Cpp 類和物件

圍繞具體問題對屬性和行為進行有意識的選擇,使複雜的具體問題得到簡化 物件導向的程式設計 1.類的一般形式 class struct 類名 繼承方式 基類,類名 void 返回型別 函式名 形參表 常屬性 異常說明 資料型別 變數名 成員變數 2.訪問控制限定符 3.成員函式 c 支援三種型別的成員函...

h 和 cpp的區別

include該hpp檔案即可,無需再將cpp加入到project中進行編譯。而實現 將直接編譯到呼叫者的obj檔案中,不再生成單獨的obj,採用hpp將大幅度減少呼叫 project中的cpp檔案數與編譯次數,也不用再發布煩人的lib與dll,因此非常適合用來編寫公用的開源庫。hpp的優點不少,但...

c和 cpp 的 區別

在編譯原始檔時,c編譯器和c 編譯器都會對符號 函式或變數 名作某些修正,但兩者採用的修正方法不同,所以兩者生成的目標檔案不能互相鏈結。在c 中使用extern c 可以讓c 符號獲得c鏈結特性。由於c 編譯器會自動定義 cplusplus巨集,所以在c語言標頭檔案中採用這種結構可以保證無論使用何種...