天鸽哥 发表于 2018-2-17 10:13:34

请问我那个printf("a[%d][%d]=%d\n",i,j,*(*(p+i)+j))问题出在哪里

void main()
{
        int a={0,1,2,3,4,5,6,7,8,9,10,11};
        int *p,i,j;

        p=a;

        printf("i=");
        scanf("%d",&i);
        while(i<0||i>2)
        {
                scanf("%d",&i);
        }

        printf("j=");
        scanf("%d",&i);
        while(j<0||j>3)
        {
                scanf("%d",&j);
        }

        printf("a[%d][%d]=%d\n",i,j,*(*(p+i)+j));
}

LYHCYQ 发表于 2018-2-17 11:15:08

*(p+i)是一个确定的值 变成了一个常量 再取其地址应该就不对了吧

天鸽哥 发表于 2018-2-17 11:37:10

LYHCYQ 发表于 2018-2-17 11:15
*(p+i)是一个确定的值 变成了一个常量 再取其地址应该就不对了吧

那我得怎么修改,这个打印,我必须要用二维数组的指针形式打印出来的

天鸽哥 发表于 2018-2-17 12:01:55

LYHCYQ 发表于 2018-2-17 11:15
*(p+i)是一个确定的值 变成了一个常量 再取其地址应该就不对了吧

谢谢!我懂了!
页: [1]
查看完整版本: 请问我那个printf("a[%d][%d]=%d\n",i,j,*(*(p+i)+j))问题出在哪里