C\C++的size

您所在的位置:网站首页 size的头文件是什么 C\C++的size

C\C++的size

2024-05-26 08:25| 来源: 网络整理| 查看: 265

2023年5月21,周日早上:

今天早上在看别人的代码时遇到了size_t这个数据类型,于是记录一下自己的学习成果。

什么是size_t

官方文档:https://cplusplus.com/reference/cstring/size_t/

size_t是一个无符号整数类型

size_t全称是size_type,也就是表示大小的数据类型

什么地方会用到size_t

1、需要接收字符串长度时: char str[] = "Hello world!"; size_t len = strlen(str); // 计算字符串长度

2、充当数组的下标(也可以说是索引)时:

因为数组的下标不能是负数,而size_t正好是无符号整数,所以size_t不可能是负数。那为什么不用int呢?因为int是有符号整数,可以为负数,所以不用int。

size_t i = 0; int arr[] = {1, 2, 3}; int x = arr[i];

 一个完整的例子:

#include #include #include int main() { int *arr=(int*)malloc(10*sizeof(int)); for (size_t i = 0; i < 10; ++i) { arr[i] = i + 1; // 赋值 } for (size_t i = 0; i < 10; ++i) { printf("arr[%zu] = %d\n", i, arr[i]); // 打印数组各元素的值 } free(arr); // 释放分配的内存空间 return 0; }

3、用作内存分配函数中参数和返回值类型

许多内存分配函数(如 malloc、calloc、realloc 等)使用 size_t 类型来表示需要分配空间的大小,也使用这种类型来返回所分配内存对象的大小。

void* malloc (size_t size); void* calloc (size_t num, size_t size); void* realloc (void* ptr, size_t size);

4、用于标准库函数中参数和返回值类型

标准库中的很多函数,如字符串处理函数 strlen、字符复制函数memcpy 等都使用 size_t 来描述传入/返回值的长度信息。

size_t strlen ( const char * str ); void * memcpy ( void * destination, const void * source, size_t num );



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3