美文网首页程序员
C指针(2):指针的长度和类型

C指针(2):指针的长度和类型

作者: miamendax | 来源:发表于2020-05-26 18:42 被阅读0次

    指针的长度和类型

    1.内存模型

    不同的机器和编译器在给C的基本数据类型分配空间上有不同的做法. 模型取决于操作系统和编译器,一种操作系统可能支持多种模型,这通常是用编译器选项来控制的

    2.size_t

    size_t类型表示C中任何对象所能达到的最大长度, 无符号整数, 可用于sizeof操作符的返回值类型

    //size_t的声明,出现在头文件中
    #ifndef __SIZE_T
    #define __SIZE_T
    typedef unsigned int size_t;
    #endif
    

    3.intptr_t和uintptr_t

    intptr_t和uintptr_t类型用来存放指针地址。它们提供了一种可移植且安全的方法声明指针,而且和系统中使用的指针长度相同,对于把指针转化成整数形式来说很有用

    uintptr_t是intptr_t的无符号版本

    4.ptrdiff_t

    ptrdiff_t类型表示两个指针差值的可移植方式. 指针相减的结果以ptrdiff_t类型返回。因为指针长度可能不同,这个类型简化了处理差值的任务

    常量指针

    //指向常量的指针
    const int *pci;
    int const *pci;//两个语句相同
    
    //指向非常量的常量指针
    int num;
    int *const cpi = #
    
    //指向常量的常量指针
    const int * const cpci = &limit;
    
    //指向"指向常量的常量指针"的指针
    const int * const * pcpci;
    

    相关文章

      网友评论

        本文标题:C指针(2):指针的长度和类型

        本文链接:https://www.haomeiwen.com/subject/xgwvahtx.html