关于数组的一些基本操作

1、如果不对定义好的数组元素进行赋值,那么会出现野值的情况。

2、数组赋值可以用简单的循环赋值,最快的方式是memeset。用法:

int a[10];

memeset 需要包含的头文件 string.h //c 或#incldue <string> //c++

memset(a,0,sizeof(a));//对数组a的前十个元素赋值为0,如果要全部赋值为0可以这么写,如果要赋为其他数字,不能这么写,因为memeset是按照字节byte进行赋值,否则会出现意想不到的值。

以下为转载
==========================================================================
memset函数使用说明中提到的是按照byte来填充。

       举例来说
       char arr[10]; memset(arr,'a',10);
       由于char只占一个字节(byte),因此函数的结果是将连续的10个字节都填充为'a'。这是我们所期待的结果!

       int arr[10];memset(arr,1,10);
       由于int占4个字节(byte),因此"1"对应的二进制(32bits下)为"00000000000000000000000000000001"(4bytes),塞到1byte(8bit)的中,高位被舍弃了。所以,填入数组中的值是"00000001"。然而总共有10*4=40个byte,却只有10个byte被填充,因此结果是"00000001……00000001**********"(前面总共10个"00000001")。因此,第一个数是"0x01010101"=16843009(10进制),数组其余部分的值则是随机值,读取出来会是很离谱的数!
       有人说,可以这样memset(arr,1,sizeof(arr));
       其实这样做,就是将数组的所有值都填充为"0x01010101",也就是int数组的初始值变为了16843009 !这确实有点出乎我们的预料!
=============================================================================

你可能感兴趣的:(c++ 基本操作)