我想要一些二維陣列
const int a = 5;
const int b = 10;
double R[a][b];
然后我想將 5 個數字:{0.2, 0.3, 0.4, 0.5, 0.6} 分配給 R 2d 陣列的 [a] 索引。是否可以?
uj5u.com熱心網友回復:
對于在運行時計算長度的可變大小陣列,您不能使用初始化程式。如果初始值中存在模式,則通常使用for回圈。另一方面,如果可以在編譯時計算長度,則可以改用陣列初始值設定項。以下是這兩種情況的示例:
#include <stdio.h>
#define LEN(array) ((int) (sizeof (array) / sizeof (array)[0]))
int main(void)
{
const int a = 10, b = 5;
double R[a][b];
for (int i = 0; i < LEN(R); i ) {
R[i][0] = 0.2;
R[i][1] = 0.3;
R[i][2] = 0.4;
R[i][3] = 0.5;
R[i][4] = 0.6;
}
double R1[][10] ={
{0.2, 0.3, 0.4, 0.5, 0.6},
{0.2, 0.3, 0.4, 0.5, 0.6},
{0.2, 0.3, 0.4, 0.5, 0.6},
{0.2, 0.3, 0.4, 0.5, 0.6},
{0.2, 0.3, 0.4, 0.5, 0.6},
{0.2, 0.3, 0.4, 0.5, 0.6},
{0.2, 0.3, 0.4, 0.5, 0.6},
{0.2, 0.3, 0.4, 0.5, 0.6},
{0.2, 0.3, 0.4, 0.5, 0.6}};
return 0;
}
注意:通過使用 sizeof 運算子計算R的長度,而不是在其宣告中使用長度變數(a和b),邏輯變得不那么脆弱。要獲取示例中的列數,請使用LEN(R[0]).
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/467400.html
標籤:C
下一篇:C動態結構陣列
