一些细节的掠影

 掠影一:

#include<stdio.h>
int main()
{
	int a = 2;
	float b;
	b = (float)(1 / a);
	printf("%f", b);
	return 0;
}

这段代码的输出结果是0.000000,而不是预期的0.500000。

这是因为在C语言中,当整数相除时,结果也是整数,会向下取整。所以1/a的结果是0,然后再强制类型转换成浮点数,得到的结果就是0.0。

解决该问题的方法是将1改为1.0,这样就会将1.0和a做除法运算,得到一个浮点数0.5,然后再进行赋值操作。

修改后的代码如下:

#include<stdio.h>
int main()
{
    int a = 2;
    float b;
    b = 1.0 / a;
    printf("%f", b);
    return 0;
}

输出结果为0.500000。

掠影二:

int a[] = {-2, -3, 4, -1, -2, 1, 5, -3};

int n = sizeof(a)/sizeof(a[0]);

这种方法是一种常见且方便的手段,用于在不需要显式指定元素数量的情况下确定数组的长度。这对于编写更通用和可复用的代码非常有帮助,因为它允许代码适应数组大小的变化而无需任何修改。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值