簡體   English   中英

指針算術的類型

[英]Type of pointer arithmetic

我正在看一些操縱數據緩沖區的舊代碼。 我有很多地方:

char *ptr1 ;
char *ptr2 ;

然后我需要找到兩者之間的字節數。

int distance = ptr2 - ptr1 ;

我收到很多關於截斷的警告。 是什么類型的

 ptr2 - ptr1

我已經找到了許多處理指針算法的答案,但奇怪的是,這個特定問題並不是答案。

指針算術

減去兩個指針†的結果是std::ptrdiff_t 它是一個實現定義的有符號整數; 它可能比int可以存儲的更大。

有關更多信息,請參見http://en.cppreference.com/w/cpp/types/ptrdiff_t

†如果指針指向同一數組的元素,則只能減去指針,否則它是UB。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM