我想知道为什么size_t在我可以使用say int类型的地方使用它.它说这size_t是一种返回类型的sizeof运算符.这是什么意思?就像我使用sizeof(int)并存储它返回int类型变量的内容一样,它也可以工作,没有必要将它存储在一个size_t类型变量中.我只是清楚地想要了解使用的基本概念以及size_t一个明显可以理解的例子.谢谢
Pub*_*bby 10
size_t保证能够代表可能的最大尺寸,int不是.这意味着size_t更便携.
例如,如果int只能存储多达255但你可以分配5000字节的数组呢?显然,这不会起作用,但是size_t会有效.
最简单的例子已经过时了:在int具有 64 k RAM的旧 16 位系统上,an 的值int可以是从 -32768 到 +32767 的任何位置,但之后:
char buf[40960];
Run Code Online (Sandbox Code Playgroud)
缓冲区buf占用 40 KB,因此sizeof buf太大而无法放入int,并且需要一个unsigned int.
如果您使用 32 位int但允许程序一次访问超过 4 GB 的 RAM,那么今天可能会发生同样的事情,就像所谓的“I32LP64”模型(32 位int、64 位long和指针)一样。这里的类型size_t将与unsigned long.
| 归档时间: |
|
| 查看次数: |
4950 次 |
| 最近记录: |