ascii碼對照表 C語言指針可以相減嗎?為什么?
C語言指針可以相減嗎?為什么?如果兩個指針指向同一個數(shù)組,可以將它們相減,結果是兩個指針之間的元素數(shù)。讓我們以本章開頭介紹的街道地址的類比為例。假設我住在第五大道118號,我的鄰居住在第五大道124號
C語言指針可以相減嗎?為什么?
如果兩個指針指向同一個數(shù)組,可以將它們相減,結果是兩個指針之間的元素數(shù)。讓我們以本章開頭介紹的街道地址的類比為例。假設我住在第五大道118號,我的鄰居住在第五大道124號。每間房子的地址間距是2(我這邊的街道地址是連續(xù)的偶數(shù))。那么我鄰居的房子就是我房子前面的(124-118)/2(或3)房子(我鄰居的房子和我的房子分開兩個房子,即120和122)。指針之間的減法與上述方法相同。
學習c語言的時候指針應該怎么理解?
簡而言之,指針是表示地址的無符號整數(shù)。
所以僅僅理解指針是不夠的。您還需要知道指針指向的數(shù)據(jù)空間是如何排列的。這可能涉及到一些與特定CPU/OS相關的知識。如果我們能用計算機體系結構的知識來理解它,它會更深刻、更準確。
例如:
如何存儲float/double/long double?
如何在數(shù)據(jù)空間中組織陣列?
字符串是如何存儲的?
如何存儲結構和聯(lián)合體?
位域組織
具體CPU相關部分如下:
整數(shù)的存儲將涉及CPU大小的指定
浮點數(shù)的存儲直接關系到FPU的設計
此外,還有一些擴展知識,涉及內存的分配和釋放:如何在程序中分配內存?(malloc/free)
什么是堆和堆棧?
總而言之:指針是地址和整數(shù)。但要充分利用它,我們需要了解計算機存儲空間的分配。困難在這里,突破在這里。
對于類型相同的兩個指針變量之間,不能進行的運算是符號是?
您應該選擇C。可以比較選項a中相同類型的兩個指針的大小。比較原則應基于實際內存的高位和低位。B選項分配,當然可以。D選項可以通過減去兩個相同的指針變量(應用于特定類型的數(shù)組)來獲得相同類型的元素數(shù)。不允許使用C選項,因為兩個指針不添加任何內容,所以不允許添加。