返回信息流请教大牛,编译的时候出现如下问题,是什么原因?
Compiling...
1.cpp
C:\Windows\System32\1.cpp(18) : error C2100: illegal indirection
执行 cl.exe 时出错.
1.obj - 1 error(s), 0 warning(s)
这是一条镜像帖。来源:北邮人论坛 / cpp / #36899同步于 2010/3/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
是Win7的兼容性问题吗?
xiaoniuguohe
2010/3/22镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
检查你程序的指针...
【 在 xiaoniuguohe 的大作中提到: 】
: 请教大牛,编译的时候出现如下问题,是什么原因?
: Compiling...
: 1.cpp
: ...................
拜!大牛!确实是指针的问题,问题在下面的指针,红色部分为什么这样才是对的,如果是*(p[i]+j)怎么就不对了?初学,还望请教!(可以只看fun2部分)
#include <iostream.h>
void fun1(int a[][4],int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<4;j++)
cout<<a[i][j]<<'\t';
cout<<'\n';
}
}
void fun2(int *p,int m,int n)
{
int i,j;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
cout<<*(p+i*m+j)<<'\t';
cout<<'\n';
}
}
void fun3(int(*p)[4],int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<4;j++)
cout<<*(*(p+i)+j)<<'\t';
cout<<'\n';
}
}
void main()
{
int a[3][4]={{2,4,6,8},{3,6,9,12},{4,8,12,16}};
fun1(a,3);
fun2(a[0],3,4);
fun3(a,3);
}
【 在 shenlei 的大作中提到: 】
: 检查你程序的指针...
【 在 xiaoniuguohe 的大作中提到: 】
: 拜!大牛!确实是指针的问题,问题在下面的指针,红色部分为什么这样才是对的,如果是*(p[i]+j)怎么就不对了?初学,还望请教!(可以只看fun2部分)
: #include <iostream.h>
: void fun1(int a[][4],int n)
: ...................
恩,因为int *p; p[i]就已经不是指针了。。再用*就不对了