• memset的用法


    1.赋极大值

    memset(a,0x3f,sizeof(a));

    2.赋0

    memset(a,0,sizeof(a));

    3.赋-1

    memset(a,-1,sizeof(a));

    赋值原理:

    memset是按照字节赋值的,即将每个字节都赋值成要求赋予的值。但是,1个int型数据并不是1个字节的是4个字节的,所以对除了0,-1以外的整型用memset来赋值得到的结果不是赋的那个值。而1个char型数据是一个字节的,所以对于char型数据可以直接用memset来赋值。

    0x代表以16进制形式表示的常数。将0x3f赋值给整型a,3f代表16进制下的2bit,而1byte= 8bit(位),即将0x3f3f3f3f的值赋值给int a。

    那么这个值是多少呢?

    0x3f  =  0011 1111

    0x3f3f3f3f = 0011 1111 0011 1111 0011 1111 0011 1111      第一位是符号位,0代表正数,1代表负数,所以该值是小于int上限一半的数,即该值乘2不会超过上限。

    0x3f3f3f3f的十进制是1061109567,是10^9级别的,整型的范围是-2147483648~2147483647(-2^31~2^31-1)是10的九次方级别的,所以在整型范围内该值为极大值。

                                          数值型和字符型数据的字节数和数值                                                        
    整型 [signed] int 4 byte
    无符号整型 unsigned [int] 4 byte
    短整型 short [int] 2 byte
    无符号短整型 unsigned short [int] 2 byte
    长整型 long [int] 4 byte
    无符号长整型 unsigned long [int] 4 byte
    字符型 [signed] char 1 byte
    无符号字符型 unsigned char 1 byte
    单精度型 float 4 byte
    双精度型 double 8 byte
    长双精度型 long double 8 byte
  • 相关阅读:
    springmvc与Ajax交互
    springmvc请求参数获取的几种方法
    struts2进阶篇(2)
    mysql explain用法
    struts2基础篇(1)
    struts2工作原理
    PHP 数组的拷贝是按值传递 or 按引用传递
    js中使用cookie
    Yii rules常用规则
    js倒计时发送验证码按钮
  • 原文地址:https://www.cnblogs.com/zuiaimiusi/p/10631900.html
Copyright © 2020-2023  润新知