C的一些知识【持续更新】

1、要显示八进制、十六进制前缀,使用%#o、%#x、%#X,分别显示o、0x、0X前缀。

2、C语言程序要特别注意数据类型的实际字节数,在某些系统中,char不一定是8位,int不一定是32位等等。C99提供了inttype.h头文件,可以提供确切的字节数数据类型,例如uint32_t表示32位无符号整数类型。注意,要使用inttype.h,环境必须支持C99。

3、C语言中浮点数精度问题:float型数据精度为至少6位有效数字,是指想12.3456789这样的数据至少前6位是有效的,即能正确表示12.3456,而后面的数据就不一定正确了。验证程序如下:

/**
 *功能:验证浮点数精度,以float类型举例
 *作者:赵聪
 *时间:2013-3-29
 */
#include <stdio.h>

/**
 *主程序
 */
int main(void){
	/**
	 *测试数据
	 */
	float f_test1 = 0.123456789;
	float f_test2 = 1.23456789;
	float f_test3 = 12.3456789;
	float f_test4 = 123.456789;
	float f_test5 = 1234.56789;
	float f_test6 = 12345.6789;
	float f_test7 = 123456.789;
	float f_test8 = 1234567.89;
	float f_test9 = 12345678.9;
	float f_test10 = 123456789;

	/**
	 *打印
	 */
	printf("%.10f\n",f_test1);
	printf("%.10f\n",f_test2);
	printf("%.10f\n",f_test3);
	printf("%.10f\n",f_test4);
	printf("%.10f\n",f_test5);
	printf("%.10f\n",f_test6);
	printf("%.10f\n",f_test7);
	printf("%.10f\n",f_test8);
	printf("%.10f\n",f_test9);
	printf("%.10f\n",f_test10);

	return 0;
}

结果如下图:

从第三个数据可以看出在第八位数时,数据不再正确。从所有数据可以看出,在我的环境中,浮点型数据(float型)从第八位不再保证正确。

4、sizeof后跟数据类型时,必须加上括号,而跟变量时,则不需要加括号。举例,sizeof(int),int a; sizeof a。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值