将数组变量放入多维数组

BvdVen

我想要以下

int ring1[5] = {1,2,3,4,5};
int ring2[5] = {6,7,8,9,10};
int ring3[5] = {11,12,13,14,15};
int rings[3][5] = {ring1, ring2, ring3};

但是我在最后一行收到错误:

数组必须使用大括号括起来的初始化程序进行初始化。

愤怒

C数组名称中表示数组的基地址,因此,您的全部ring1ring2ring3给出其起始元素的地址(即第0个)。

同样rings也是一个数组(它是一个二维数组)。

我们无法将地址存储在数组中,因为这将不得不使用指针。

因此,我们必须使用以下方式。

#include <stdio.h>

int main()
{
    int ring1[5] = {1,2,3,4,5};
    int ring2[5] = {6,7,8,9,10};
    int ring3[5] = {11,12,13,14,15};
    //int rings[3][5] = {{ring1}, {ring2}, {ring3}};
    int *rings[3] = {ring1, ring2, ring3};
    
    printf("ring1 = %p and rings[0] =%p\n", ring1, rings[0]);
    printf("ring2 = %p and rings[1] =%p\n", ring1, rings[1]);
    printf("ring3 = %p and rings[2] =%p\n", ring1, rings[2]);

    return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章