当前位置:首页 > 行业动态 > 正文

c语言sizeof函数的怎么用?

sizeof是C语言中的一种单目操作符,它以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。 ,, sizeof(int)返回整型变量所占用的字节数,sizeof(char)返回字符变量所占用的字节数。

什么是sizeof函数?

sizeof(type)是C语言中的一个运算符,用于计算数据类型或对象所占用的内存空间大小,单位是字节,它可以用于计算基本数据类型、数组、结构体、联合体等的大小,sizeof()函数的返回值是一个整数,表示所操作的数据类型或对象在内存中占用的字节数。

c语言sizeof函数的怎么用?  第1张

如何使用sizeof函数?

1、计算基本数据类型的大小

include <stdio.h>
int main() {
    printf("Size of int: %lu bytes
", sizeof(int));
    printf("Size of float: %lu bytes
", sizeof(float));
    printf("Size of double: %lu bytes
", sizeof(double));
    printf("Size of char: %lu bytes
", sizeof(char));
    return 0;
}

2、计算数组的大小

include <stdio.h>
int main() {
    int arr[] = {1, 2, 3, 4, 5};
    printf("Size of array: %lu bytes
", sizeof(arr));
    return 0;
}

3、计算结构体的大小

include <stdio.h>
// 定义一个结构体类型
struct Student {
    int id;
    char name[20];
    float score;
};
int main() {
    struct Student student1;
    printf("Size of struct Student: %lu bytes
", sizeof(student1));
    return 0;
}

4、计算指针的大小

include <stdio.h>
int main() {
    int a = 10;
    int *p = &a; // p指向变量a的地址
    int **pp = &p; // pp指向指针p的地址,即指向变量a的地址的指针的地址
    int *ptr = (int *)pp; // 将指针变量pp强制转换为指向int类型的指针,并赋值给ptr
    printf("Size of int pointer: %lu bytes
", sizeof(ptr)); // sizeof(ptr)的结果是指针变量的大小,而不是它所指向的变量的大小,因为指针本身也需要占用内存空间,输出结果为8字节,注意:不同编译器可能会有不同的结果,因为它们可能对指针的大小有不同的实现方式,通常情况下,指针的大小至少为8字节,这是因为现代计算机通常使用64位处理器,而指针通常需要64位来存储其地址,即使在32位系统上,指针的大小也可能为8字节,在某些特殊情况下,例如嵌入式系统或旧式计算机上,指针的大小可能仅为4字节或更少。
    return 0;
}

sizeof函数与动态内存分配有关吗?

是的,sizeof函数与动态内存分配有关,在使用malloc、calloc、realloc等动态内存分配函数时,可以使用sizeof()函数来获取分配内存块的大小。

include <stdio.h>
include <stdlib.h>
include <string.h>
int main() {
    int n = 5; // 需要分配的元素个数,假设为5个整数+1个字符串结束符'
0