C语言size_t和size_type比较

size_tsize_t是用于数组的下标值类型,也可以用来“接收”sizeof操作符的返回值。

1、既然是无符号的,,一般只能用在没有负数的地方了,比如我们的年龄啊,身高啊。在c标准函数中,最一般的就是strlen,返回字符数。字符数当然不可能是负的啊,所以函数原型是size_t strlen(const char*) ;size_t是表示长度(尺寸)的类型,这个类型是由 typedef unsigned int size_t; 定义的,一般用于保存一些长度信息,比如数组的长度、字符串的长度等;

2、size_type是容器配套类型,使用前需要加作用域比如string::size_type(string可看作字符容器,但不是类模板)数组的定义声明等应当使用size_t类型,如果不得不使用int作下标,应当使用unsigned避免越界。至于size_type类型无法转换……也许字符串流可以但是没有试过。

例子:

数组中应用size_t的例子

问题描述:

反向输出数组中的数

代码:

#include

using namespace std;

int main()

{

const size_t a_size = 10;

int a[a_size];

for (size_t i = 0; i != a_size; i++)

{

a[i] = i;

}

for (int j = a_size - 1; j >= 0; j–)

{

cout << a[j] << endl;

}

return 0;

}

运行结果如下:

9 8 7 6 5 4 3 2 1 0

3、总结:

size_type是容器概念,没有容器不能使用 是的 size_t实际上就是unsigned int

发布了240 篇原创文章 · 获赞 3 · 访问量 3179

猜你喜欢

转载自blog.csdn.net/it_xiangqiang/article/details/105163719