size_t

来自cppreference.com
< c‎ | types
定义于头文件 <stddef.h>
定义于头文件 <stdio.h>
定义于头文件 <string.h>
定义于头文件 <time.h>
typedef /*implementation-defined*/ size_t;

size_tsizeofalignof (C11起)offsetof结果所拥有的无符号整数类型。

[编辑] 注意

size_t可以存储任何类型的理论上可行对象(包括数组)的最大大小。

size_t通常用作数组索引和循环级数。使用如unsigned int的其他类型做数组索引的的程序,可能会在下标超过UINT_MAX时,或依赖32位模算术时失败,譬如在64位系统上。

[编辑] 示例

#include <stdio.h>
#include <stddef.h>
#include <stdint.h>
 
int main(void)
{
    const size_t N = 100;
    int numbers[N];
    for (size_t ndx = 0; ndx < N; ++ndx)
        numbers[ndx] = ndx;
    printf("SIZE_MAX = %lu\n", SIZE_MAX);
    size_t size = sizeof numbers;
    printf("size = %zu\n", size);
}

可能的输出:

SIZE_MAX = 18446744073709551615
size = 400

[编辑] 参阅

两个指针相减返回的有符号整数类型
(类型定义) [edit]
从指定结构体类型的起始到指定成员的字节位移
(宏函数) [edit]
size_tC++文档