
C语言 为什么输出错误显示illegal indirection?
#include"stdafx.h"#include"stdio.h"main(){inti,j,k=0,h=1,l,m=0,september=9,october=10...
#include "stdafx.h"
#include "stdio.h"
main()
{
int i,j,k=0,h=1,l,m=0,september=9,october=10,a[8][6],b[25][5];
int *p;
for(i=0;i<8;i++)
{
k+=5;
a[i][0]=k;
a[i][1]=i+1;
a[i][2]=i+2;
a[i][3]=i+4;
a[i][4]=i+7;
a[i][5]=i+15;
}
for(i=0;i<8;i++)
for(j=1;j<6;j++)
a[i][j]+=18;
p=a[0];/*这里给指针变量赋值*/
for(i=0;i<8;i++)
{
for(j=0;j<6;j++)
{
if(j==0)
if(i==0)
printf("%2d-%2d ",h,*(*(p+i)+j));/*这里输入显示illegal indirection*/
else printf("%2d-%2d ",a[i-1][j],a[i][j]);
else
if(a[i][j]<=30)
printf("%2d月%2d日 ",september,a[i][j]);
else
printf("%2d月%2d日 ",october,a[i][j]-=30);
}
printf("\n\n");
}
for(l=0;l<22;l++)
for(m=0;m<5;m++)
b[l][m]=0;
m=1;
for(l=0;l<22;l++)
{
b[l][0]=l+19;
if(b[l][0]>30)
b[l][0]-=30;
}
for(l=0;l<22;l++)
{
for(i=0;i<8;i++)
for(j=1;j<6;j++)
if(b[l][0]==a[i][j])
b[l][m++]=a[i][0];
m=1;
}
for(l=0;l<22;l++)
{
for(m=0;m<5;m++)
printf("%2d ",b[l][m]);
printf("\n");
}
} 展开
#include "stdio.h"
main()
{
int i,j,k=0,h=1,l,m=0,september=9,october=10,a[8][6],b[25][5];
int *p;
for(i=0;i<8;i++)
{
k+=5;
a[i][0]=k;
a[i][1]=i+1;
a[i][2]=i+2;
a[i][3]=i+4;
a[i][4]=i+7;
a[i][5]=i+15;
}
for(i=0;i<8;i++)
for(j=1;j<6;j++)
a[i][j]+=18;
p=a[0];/*这里给指针变量赋值*/
for(i=0;i<8;i++)
{
for(j=0;j<6;j++)
{
if(j==0)
if(i==0)
printf("%2d-%2d ",h,*(*(p+i)+j));/*这里输入显示illegal indirection*/
else printf("%2d-%2d ",a[i-1][j],a[i][j]);
else
if(a[i][j]<=30)
printf("%2d月%2d日 ",september,a[i][j]);
else
printf("%2d月%2d日 ",october,a[i][j]-=30);
}
printf("\n\n");
}
for(l=0;l<22;l++)
for(m=0;m<5;m++)
b[l][m]=0;
m=1;
for(l=0;l<22;l++)
{
b[l][0]=l+19;
if(b[l][0]>30)
b[l][0]-=30;
}
for(l=0;l<22;l++)
{
for(i=0;i<8;i++)
for(j=1;j<6;j++)
if(b[l][0]==a[i][j])
b[l][m++]=a[i][0];
m=1;
}
for(l=0;l<22;l++)
{
for(m=0;m<5;m++)
printf("%2d ",b[l][m]);
printf("\n");
}
} 展开
2个回答
展开全部
你的*p只是一级指针,怎么能写成二级指针呢,所以是错的,不能够那样写
printf("%2d-%2d ",h,*(p+i*6+j)); /*这里输入显示illegal indirection*/
这个是8*6的数组,即a[8][6]
printf("%2d-%2d ",h,*(p+i*6+j)); /*这里输入显示illegal indirection*/
这个是8*6的数组,即a[8][6]
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询