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

指针的长度和类型

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):指针的长度和类型)