2011-12-12 141 views
0

有人可以解釋這裏發生了什麼嗎?這裏使用了什麼樣的數學邏輯?常量指針轉換

(4.4/4)A轉換可以在比其他級別添加cv修飾符的 第一個多級指針,受到以下規則:51)兩個 指針類型T1和T2是如果類似有存在一個類型T和 整數n> 0,使得:T 1是cv 1,0指針指向cv 1,指針1指針 。 。 。 cv 1,n - 1指向cv 1,n T和T 2是cv 2,0指針 以cv 2,1指針指向。 。 。 cv 2,n - 1指向cv 2的指針,n T其中,每個cv i,j是const,volatile,const volatile或什麼都不是。指針類型中的第一個之後的cv-限定符的n元組,​​例如,cv 1 ,1,cv 1,2,...。 。 。 ,指針類型T1中的cv 1,n被稱爲 指針類型的cv-qualification簽名。當且僅當滿足以下 條件時,類型 T 1的表達式才能轉換爲類型T 2: - 指針類型相似。 - 對於 每個j> 0,如果const在cv 1中,那麼j則const在cv 2中,j和 類似於volatile。 - 如果cv 1,j和cv 2,j不同,則 然後const在每個cv 2中,k爲0 < k < j。

+0

插圖本中(更具體的)問題,你的問題: [?爲什麼從CHAR轉換到*** char * const的**無效(http://stackoverflow.com/questions/40200807/why-是從char轉換charconst無效) –

回答

0

我不會稱之爲數學邏輯。這是(IMO)類型理論和類型推理的一個很好的例子。總的來說,wikipedia是你的朋友。

+0

我不知道我理解你的問題。 – pg1989