c++ ptrdiff_t 類型


ptrdiff_t是C/C++標准庫中定義的一個與機器相關的 數據類型。ptrdiff_t類型 變量通常用來保存兩個 指針減法操作的結果。ptrdiff_t定義在stddef.h(cstddef)這個文件內。ptrdiff_t通常被定義為long int類型。
ptrdiff_t定義在C99標准中。

ptrdiff_t

標准庫類型(library type)ptrdiff_t 與 size_t 類型一樣, ptrdiff_t 也是一種與機器相關的類型,在 cstddef 頭文件中定義。size_t 是unsigned 類型,而 ptrdiff_t 則是 signed 整型 [1]

size_t

這兩種類型的差別體現了它們各自的用途: size_t 類型用於指明數組長度,它必須是一個正數;ptrdiff_t 類型則應保證足以存放同一數組中兩個指針之間的差距,它有可能是負數。
difference_type 是signed類型,表示迭代器差距,vector<int>:: difference_type = iter1-iter2.
ptrdiff_t與difference_type區別,前面的是c++定義的標准,后面則是STL定義的
 
int *a=new int(1);
    int *b=new int(2);
    ptrdiff_t result=a-b;

    cout<<a<<ends<<b<<ends<<result<<endl;

 

000F8F08
000F8F38
-12
可以看出, 2個指針相減等於(地址相減的值)/指針所指向的數據類型
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM