目录结构


1. sizeof

1.2 基本用法

1.2.1 获取数据类型的大小:

1.2.2 获取变量的大小:

1.2.3 获取表达式的大小:

1.2.4 我一般这样用的最多:

2. strlen


1. sizeof


sizeof 运算符用于获取数据类型、变量或表达式所占用的内存大小(以字节为单位)。

1.2 基本用法

获取类型长度

size_t sizeof_datatype = sizeof(type);

获取变量长度

size_t sizeof_variable = sizeof(variable);

示例用法:

1.2.1 获取数据类型的大小:

#include <iostream>
using namespace std;

int main()
{
    cout<<sizeof(int)<<endl;//4
    cout<<sizeof(char)<<endl;//1
    cout<<sizeof(double)<<endl;//8

    return 0;
}

1.2.2 获取变量的大小:

#include <iostream>
using namespace std;

int main()
{
    int x;
    size_t x_size = sizeof(x);
    cout<<x_size<<endl;//4

    int buffer[100];
    size_t buffer_size = sizeof(buffer);
    cout<<buffer_size<<endl;//400

    size_t buffer_size2 = sizeof(buffer[0]);
    cout<<buffer_size2<<endl;//4

    return 0;
}

1.2.3 获取表达式的大小:

#include <iostream>
using namespace std;

int main()
{
    size_t expr_size = sizeof(1 + 2.0);
    cout<< expr_size<<endl;//8

    return 0;
}

1.2.4 我一般这样用的最多:

#include <iostream>
using namespace std;

int main()
{
    int arr[100];
    int n=sizeof(arr) / sizeof(arr[0]);//存储arr的数组大小

    return 0;
}

2. strlen

strlen用于计算一个以null终止字符数组(即C字符串)的长度,也就是字符串中字符的数量,但不包括字符串结尾的null字符 ('\0'),即hello长度就是5.

使用该函数需要导入库函数

#include <string.h>

示例

#include <stdio.h>
#include <string.h>

int main() {
    const char *str = "Hello";
    size_t length = strlen(str);
    
    printf("字符串 \"%s\" 的长度是 %zu\n", str, length);//内存存储是6,加上'\0',但显示的字符串 "Hello" 的长度是 5
    
    return 0;
}