我需要h x h
在C中使用空格初始化矩阵。
如何正确地做到无循环?
int h = 8;
char arr[h][h] = {{' '}}; // does not work....
这些声明
int h = 8;
char arr[h][h] = {{' '}};
声明一个可变长度的数组。可变长度数组只能在函数中声明(例如在main中),因为它们应具有自动存储期限,并且不能在声明中初始化。
所以你可以写例如
#include <string.h>
//...
int main( void )
{
int h = 8;
char arr[h][h];
memset( arr, ' ', h * h );
//...
}
也就是说,您可以应用memset
将数组的所有字符都设置为空格的标准函数' '
。
尽管如此,即使您拥有一个非可变长度数组,也要使用空格字符来初始化其所有元素,最好还是使用该函数memset
。
#include <string.h>
//...
int main( void )
{
enum { h = 8 };
char arr[h][h];
memset( arr, ' ', h * h );
//...
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句