1. 用memset赋 0 memset(dp,0,sizeof(dp)); 2. 用memset赋 -1 memset(dp,-1,sizeof(dp)); 在计算机中,数据用补码保存。-1的补码(32位)是0xFFFFFFFF,(8位,一个字节)是0xFF,memset是按字节填充的,所以不影响赋值的真实性。 3.用memset赋 INF memset(dp,127,sizeof(dp)); 127用8位二进制数表...
而对于也常用的int类型,int是4个字节,当memset(,1,sizeof());时,1相当于ASSCII码的1,1转为二进制00000001,当做一字节,一字节8位,int为4字节,所以初始化完每个数为00000001000000010000000100000001 = 16843009; memset(,0xff,sizeof()),0xff转为二进制11111111,int为4字节所以最后为11111111111111111111111111111111为...
memset(arr,0x7F,sizeof(arr)); //它将arr中的值全部赋为2139062143,这是用memset对int赋值所能达到的最大值 类似的还有: memset(arr,0x80,sizeof(arr)); //set int to -2139062144 memset(arr,0x7F,sizeof(arr)); //set double to 1.38242e+306 memset(arr,0xFE,sizeof(arr)); //set double t...
dp要是一个指针才行,memset(&dp,0x3f,sizeof dp),可以这样 把DP这块地址全部置为0x3f
memset(dp,0,sizeof(dp)); int类型的变量一般占用4个字节,对每一个字节赋值0的话就变成了“00000000 00000000 000000000 00000000” (即10进制数中的0) 赋值为-1的话,放的是 “11111111 11111111 11111111 11111111 ”(十进制的-1) 这样你可能以为如果你赋值1的话会让整个dp数组里的每一个int变成1,其实不...
memset赋值 比较神奇的事情 可能和二进制有关系吧 #include<bits/stdc++.h>usingnamespacestd;intf[1000];intmain(){ memset(f,127,sizeoff);for(inti=0;i<=10;i++) printf("%d",f[i]);return0; }结果:2139062143 inf #include<bits/stdc++.h>usingnamespacestd;intf[1000];intmain(){...
18#definell long long19#defineminv 1e-620#defineinf 1e921#definepi 3.141592653622#definenl 2.718281828423constll mod=1e9+7;//99824435324constintmaxn=1e2+10;2526inta[maxn],b[maxn];2728charc[maxn];2930intmain()31{32memset(a,0,sizeof(a));33fill(b,b+100,inf);34fill(c,c+100,'a...
memset(dp,0,sizeof(dp)); int类型的变量一般占用4个字节,对每一个字节赋值0的话就变成了“00000000 00000000 000000000 00000000” (即10进制数中的0) 赋值为-1的话,放的是 “11111111 11111111 11111111 11111111 ”(十进制的-1) 这样你可能以为如果你赋值1的话会让整个dp数组里的每一个int变成1,其实不...
memset(dp,0,sizeof(dp)); int类型的变量一般占用4个字节,对每一个字节赋值0的话就变成了“00000000 00000000 000000000 00000000” (即10进制数中的0) 赋值为-1的话,放的是 “11111111 11111111 11111111 11111111 ”(十进制的-1) 这样你可能以为如果你赋值1的话会让整个dp数组里的每一个int变成1,其实不...