我对C中的size_t感到困惑。我知道它是由sizeof运算符返回的。但是到底是什么呢?它是数据类型吗?

假设我有一个for循环:

for(i = 0; i < some_size; i++)


我应该使用int i;还是size_t i;

最佳答案

From Wikipedia


  根据1999 ISO C标准
  (C99),size_t是无符号整数
  至少16位的类型(请参阅部分
  7.17和7.18.3)。
  
  size_t是无符号数据类型
  由几种C / C ++标准定义,
  例如C99 ISO / IEC 9899标准,
  它在stddef.h中定义。1它可以
  通过包含进一步进口
  stdlib.h作为此文件的内部子文件
  包括stddef.h
  
  此类型用于表示
  对象的大小。库功能
  接受或返回尺寸的期望值
  是类型还是返回类型
  的size_t。此外,最
  常用的基于编译器
  运算符sizeof应该评估为
  兼容的常数
  size_t


这意味着size_t是保证保留任何数组索引的类型。

08-19 09:20