sizeof用于计算数组长度时注意

https://www.geeksforgeeks.org/sizeof-operator-c/

可用于数据类型或表达式(包含变量),不属于任何头文件,编译器内置操作符,编译时用常数值替换sizeof,不是运行时计算的

  1. 当用于数据类型时,返回该类型在内存中占用的字节数。(sizeof(int ) === 2)
  2. 当用于表达式时,返回表达式值占用的字节数

注意

  1. 可用于计算数组大小,sizeof(arr) / sizeof(float) //arr size: 5
  2. 可用于动态申请内存块,int * ptr = (int*)malloc(10 * sizeof(int))
  3. 不要用sizeof计算数组参数的size(数组参数被当作指针处理了),即必须用在数组定义的函数里面
#include <stdio.h>

void demo(float arr[]) {
 printf("arr size: %d\n", sizeof(arr) / sizeof(float)); //arr size: 2
}

int main(int argc, char **argv) {
 float arr[] = {1.0, 2.0, 3.0, 4.0, 5.0};
 
 printf("arr size: %d\n", sizeof(arr) / sizeof(float)); //arr size: 5
 
 demo(arr);

 return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值