[英]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.