#include int main(void) { static int a[4][4]; }#include int main(void) { static int a[4][4]; int *p[4],i,j; for(i = 0; i < 4; i++) p[i] = &a[i][0]; for(i = 0 ; i < 4; i++) { *(p[i] + i) = 1 ; *(p[i] + 4 - (i + 1)) = 1; } for(i = 0; i < 4; i++) { for(
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/18 11:31:56
#include int main(void) { static int a[4][4]; }#include int main(void) { static int a[4][4]; int *p[4],i,j; for(i = 0; i < 4; i++) p[i] = &a[i][0]; for(i = 0 ; i < 4; i++) { *(p[i] + i) = 1 ; *(p[i] + 4 - (i + 1)) = 1; } for(i = 0; i < 4; i++) { for(
#include int main(void) { static int a[4][4]; }
#include
int main(void)
{ static int a[4][4];
int *p[4],i,j;
for(i = 0; i < 4; i++)
p[i] = &a[i][0];
for(i = 0 ; i < 4; i++) {
*(p[i] + i) = 1 ;
*(p[i] + 4 - (i + 1)) = 1;
}
for(i = 0; i < 4; i++)
{
for(j = 0; j < 4; j++)
printf("%2d",p[i][j]);
printf("\n");
} return 0;
}
具体过程是什么、
#include int main(void) { static int a[4][4]; }#include int main(void) { static int a[4][4]; int *p[4],i,j; for(i = 0; i < 4; i++) p[i] = &a[i][0]; for(i = 0 ; i < 4; i++) { *(p[i] + i) = 1 ; *(p[i] + 4 - (i + 1)) = 1; } for(i = 0; i < 4; i++) { for(
for(i = 0; i < 4; i++) p[i] = &a[i][0]; 4个指针 指向 a 数组的4个行首.
*(p[i] + i) = 1 ; // p[i][i] == a[i][i](对角线上的元素)赋值1
*(p[i] + 4 - (i + 1)) = 1; //p[i][3-i] == a[i][3-i](另一对角线上的元素) 赋值1
printf("%2d",p[i][j]); // 双重循环输出a[i][j] 存放的 数值.
因为 是 static a[][],元素 初始化为全 0
输出:
1 0 0 1
0 1 1 0
0 1 1 0
1 0 0 1