我试图初始化并打印指向整数的指针数组。
这个初始化方法是否正确,或者当我们声明它为指针数组时,任何其他方法都可以初始化。我们也可以使用传统的数组ar1[][]。
#include <stdio.h>
#include <stdlib.h>
#define NUM_COLS 4
#define NUM_ROWS 3
int main(void)
{
int rowCnt;
int colCnt;
int *ar2[NUM_ROWS]={
(int[]){11,12,13,14},
(int[]){21,22,23,24},
(int[]){31,32,33,34},
};
for(rowCnt=0;rowCnt<NUM_ROWS;rowCnt++)
{
for(colCnt=0;colCnt<NUM_COLS;colCnt++)
{
printf("%d\t",*(*(ar2+rowCnt)+colCnt));
}
printf("\n");
}
return(0);
}
最佳答案
此初始化是正确的;复合文本的生存期与它们在中声明的块匹配。在本例中,文本的生存期与ar2
相同。
不过,我建议使用一个简单的数组,如dbush的答案中所示,除非您有一些额外的要求(例如需要不同长度的行)。
关于c - 初始化指向整数的指针的数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51034145/