1.我们可以使用系统提供的常量:
如果是int型,可以用INT_MAX表示正无穷,INT_MIN表示负无穷,需要包含头文件limits.h;
如果是double型,可以用DBL_MAX表示正无穷,-DBL_MAX表示负无穷(注意不是DBL_MIN),需要包含头文件float.h。
2.我们也可以自己设置一个很大的值作为无穷大:
①.0x7fffffff
但是这个值在相加时会溢出,这样两个无穷大数相加会变成负数。
②.0x3f3f3f3f
为了尽量避免以上的错误,我们可以将0x3f3f3f3f设为无穷大,这个数已达到10^9,足以表示无穷大,又因为0x3f3f3f3f+0x3f3f3f3f=2122219134,满足无穷大+无穷大仍为无穷大。当把无穷大设为0x3f3f3f3f时,在做初始化时也很方便。
3.我们也可以自己设置一个很小的值作为无穷小:
①.0xc0c0c0c0
4.memset赋初值为无穷大
memset(arr,0x7F,sizeof(arr));//不能为double类型赋值
memset(arr,0x3f,sizeof(arr));//不能为double类型赋值
memset(arr,127,sizeof(arr));
5.memset赋初值为无穷小
memset(arr,0x80,sizeof(arr)); //针对int型,值为-2139062144
memset(arr,0xFE,sizeof(arr)); //针对double型,值为-5.31401e+303
memset(arr,128,sizeof(arr));
暂时先写这些,有人用很大的数取负数得到很小的数,那种就暂时不算了,其实有个一种两种的就够用了,大家有补充麻烦留言赐教!
整理自:https://blog.csdn.net/yskyskyer123/article/details/52277927