【C 语言】数据类型本质 ( sizeof 函数 | 数据类型大小 )

简介: 【C 语言】数据类型本质 ( sizeof 函数 | 数据类型大小 )

文章目录

一、sizeof 函数

二、数据类型大小

三、代码示例





一、sizeof 函数


sizeof() 函数可以计算 数据类型 的大小 ;


sizeof (类型说明符/表达式)


可以向函数中传递


数据类型

变量

表达式

作为参数 , 如果传入变量 , 会计算变量对应的数据类型对应的内存大小 , 如果传入表达式 , 会计算表达式计算结果的数据类型对应的大小 ;


一般情况下都传入数据类型 ;






二、数据类型大小


int a;
int array[10];


使用 sizeof() 函数 计算 数据类型大小 ;


上述 sizeif(a) 的值为 4 44 , sizeof(array) 的值是 40 4040 ;


a 表达式类型是 int , 该类型占据 4 44 字节的内存空间 ;


array 表达式类型是 int[10] 数组类型 , 该类型占据 40 4040 字节的内存空间 ;



C 语言编译器 解析到 int array[10]; 代码时 , 就会给 array 变量分配 40 4040 字节大小的内存空间 ;


C 语言编译器 解析到 int a; 代码时 , 就会给 a 变量分配 4 44 字节大小的内存空间 ;






三、代码示例


代码示例 :


#include <stdio.h>
/*
 * 函数入口
 */
int main(int argc, char **args)
{
    // 编译器分配 4 字节内存
    int a;
    // 编译器分配 40 字节内存
    int array[10];
    // sizeof(a)=4, sizeof(array)=40
    printf("sizeof(a)=%d, sizeof(array)=%d\n", sizeof(a), sizeof(array));
    return 0;
}


image.png

目录
相关文章
|
13天前
|
程序员 C语言
C语言库函数 — 内存函数(含模拟实现内存函数)
C语言库函数 — 内存函数(含模拟实现内存函数)
24 0
|
24天前
|
编译器 C语言 C++
【C语言】memset()函数(内存块初始化函数)
【C语言】memset()函数(内存块初始化函数)
26 0
|
24天前
|
编译器 C语言 C++
【C语言】memcpy()函数(内存块拷贝函数)
【C语言】memcpy()函数(内存块拷贝函数)
39 0
|
24天前
|
C语言 C++
【C语言】rand()函数(如何生成指定范围随机数)
【C语言】rand()函数(如何生成指定范围随机数)
16 0
|
1月前
|
C语言
在C语言中数组作为函数参数的应用与示例
在C语言中数组作为函数参数的应用与示例
15 0
|
13天前
|
程序员 C语言 开发者
C语言库函数 — 字符串函数(含模拟实现字符串函数)
C语言库函数 — 字符串函数(含模拟实现字符串函数)
35 0
|
19天前
|
存储 C语言
【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现1
【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现
|
19天前
|
机器学习/深度学习 C语言
【C语言】函数的系统化精讲(三)1
【C语言】函数的系统化精讲(三)
|
19天前
|
编译器 C语言
【C语言】函数的系统化精讲(一)2
【C语言】函数的系统化精讲(一)2
|
19天前
|
编译器 Serverless C语言
【C语言】函数的系统化精讲(一)1
【C语言】函数的系统化精讲(一)