如何对数组进行初始化
发布网友
发布时间:2022-05-22 03:05
我来回答
共6个回答
热心网友
时间:2024-03-06 01:21
效率的方法是memset(matrix, 0, sizeof(matrix))。
但要理解其背后的含义,他的含义是将matrix所占的内存区域都赋值成0。其内存区域赋值的单位是字节。
也就是说对于int型数组matrix,每个元素int占四个字节,这四个字节都会被赋值为0。根据int的表示方法,最后这个数值也是0。碰巧的是对于double,float等当所有字节都为0时,最终的数值也都是0。所以对于这类数值型数组,如果清零的话可以这么写。
但赋值成其它数字就没有这么幸运了,如果用memset(matrix, 1, sizeof(matrix)),并不是把所有元素都赋值成1。而是内存中内容为0x010101,如果是int型那对应的是65793。如果是float型那就是某个其它数字。另外一个可以记住的常用的是memset(matrix, -1, sizeof(matrix)),对于int型这个对应的正好也是-1.
如果要赋值其它数字,只能用循环的方法自己赋值一遍。或者声明用stl的构造函数。
对于字符串,使用memset也不是好的方法,字符串最好使用stl中的string,使用stl的初始化方法。
热心网友
时间:2024-03-06 01:21
for(int i=0;i<=9;i++)
{
for(int j=0;j<=9;j++)
{
matrix[i][j]=0; //如果数组被定义为int型
}
}
热心网友
时间:2024-03-06 01:22
如果你是想问怎样在初始化的时候把内容设置好了,俺不知道,但是你在初始化的时候,大部分时候都会自动清空(我曾经遇到过值被赋的高得离谱),也就是全部赋成‘0’,如果你是在想设的话,一楼的循环可以,如果真的有这样的函数的话效率也不过如此。
热心网友
时间:2024-03-06 01:22
C语言里:
matrix[10][10]={0};
热心网友
时间:2024-03-06 01:23
要看你是什么语言了
热心网友
时间:2024-03-06 01:24
memset( matrix , 0 , sizeof( matrix ) ) ;