int a[50]; memset(a,0,sizeof(a)); 这样呢,就将数组a内所有的值都赋成0了,sizeof是一个一元操作符,得到数组a的字节大小。 另外需要注意的是,memset函数是逐字节进行填充,所以a一般为char *型。对于其它类型的a,可以填充的值有两个,0和-1。因为计算机中用二进制补码表示数字,0和二进制补码为全0,-1...
memset只有赋值是-1,0是正确的,原因如下:用memset初始化数组为1出错-CSDN memset是按字节赋值的,取变量a的后8位二进制进行赋值。1的二进制是(00000000 00000000 00000000 00000001),取后8位(00000001),int型占4个字节,当初始化为1时,它把一个int的每个字节都设置为1,也就是0x01010101,...
void *memset(void *s,int ch,int n);功能:将内存中某一块的每个字节设置为ch,块大小为n,n是以字节为单位的 题目要求是:初始化一个整形数组,并且让他输出全为1 如果你偏要输出1的话,可以这样,把1当作字符 int a[5];memset(a,'1',5*sizeof(int));
//数组定义最方便的就是用for循环来做定义,数组下标是从e69da5e6ba9062616964757a686964616f...
memset初始化数组 memset函数: 功能是: 拷贝 ch 到 buffer 从头开始的 count 个字符里,并返回buffer指针。 可以将一段内存初始化为某个值。例如:memset( the_array, '\0', sizeof(the_array) ); 有一点特别注意的是:memset按照字节初始化,就是说如果声明的数组是int arr[100];,每个元素都为int型,占4...
源码角度看memset初始化数组 memset经常被用来做初始化,memset(ptr,0,sizeof ptr)初始化为0,memset(ptr,-1,sizeof ptr)初始化为-1,除此以外的值很少用到,原因看memset的源码。 函数把输入的c转化为unsigned char,长度为1字节,也就是说0会被变成00000000,-1会被变成11111111,再一次对区域内的内存赋值,int...