Up的芳 2023-11-10 18:26 采纳率: 16.7%
浏览 5

C语言程序分析和结果。


```c
int main() {
    int a[20], * p[4], j, k = 0;
    for (j = 0; j < 20; j++)
        a[j] = j;
    for (j = 0; j < 4; j++) 
        p[j] = &a[j * (j + 1)];
    for (j = 0; j < 4; j++)
        k += p[j][j];
    printf("% d", k);
    return 0;
}

//1.p不是一维的吗?怎么会有p[j][j]?
//2.如果p是二维的,那么p是几行几列
//3.结果是多少,最后

```

  • 写回答

2条回答 默认 最新

  • threenewbee 2023-11-10 19:23
    关注

    p是一维的指针数组,指针本身可以用下标访问,所以它可以两重下标。
    p[i]代表一个指针,你这里只能说是4行,每一个指针有几列都可以不一样的。完全可以p[0]指向int a[3];而p[1]指向 b[10]
    这个程序结果是26.

    评论

报告相同问题?

问题事件

  • 创建了问题 11月10日