int eye[3][3] = {
{ 1,0,0 },
{ 0,1,0 },
{ 0,0,1 }
};
Run Code Online (Sandbox Code Playgroud)
是否有更短的方式来初始化它?它是如此规则,必须有一个更聪明的方式来初始化它,特别是如果它超过3x3,比如10x10或更多.
在c99你可以写:
int eye[][3] = { [0][0] = 1, [1][1] = 1, [2][2] = 1 };
Run Code Online (Sandbox Code Playgroud)
所有其他元素都归零,而且编译器会为您计算出数组的大小.只是不要跳过第二个尺寸(3).
顺便说一句.在您的代码中,您不必使用双括号,这也可以:
int eye[3][3] = {
1,0,0,
0,1,0,
1,0,1,
};
Run Code Online (Sandbox Code Playgroud)
在c99中,您还可以保留尾随逗号,仅用于对称和将来的重构
其他解决方案可能需要您编写一些代码,这可能确实为您节省了一些时间/空间.但请注意,这种方式是分裂声明和"初始化",例如全局变量可以产生影响.
您可以使用指定的初始化程序:
int eye[3][3] = { [0][0]=1, [1][1]=1, [2][2]=1};
Run Code Online (Sandbox Code Playgroud)
根据C标准的保证,所有其他元素将初始化为0.
| 归档时间: |
|
| 查看次数: |
788 次 |
| 最近记录: |