注册 登录
编程论坛 C++教室

指针 基础问题呢 请指教

honghong88 发布于 2011-11-11 20:50, 785 次点击

#include<iostream>
using namespace std;
#include< string>
#define  NULL 0
int main()
{ int a[3][4]={{1,2,3,4},{4,5,6,7},{7,8,9,10}};
int *p ,i,j ;
p=a[0];
for(i=0;i<3;i++ )
 for(j=0;j<4;j++)
     cout<<*(*(p+i)+j)<<endl;


}


error C2100: 非法的间接寻址  
这样写为什么不对呢

8 回复
#2
非死亡!2011-11-11 21:02
a[0]不是地址 是变量名
#3
强势出击2011-11-15 10:46
p=a[0];改成p=&a[0][0];
#4
心灵百合2011-11-17 20:28
若要去数组a的地址应该这样
p=&a[0][0]; 或 p=a;
#5
hxcet2011-11-18 12:31
3,4L说的对,不过除了这个问题。。。你用的int main(),那主函数最后要有return语句的,比如return 0;
如果不想有return语句,就要把int main()改成void main()
#6
Angel乖乖2011-11-18 12:48
int 应该有返回值的
加上return 0 试试
#7
zqllsszhuqi2011-11-18 16:35
#include<iostream>
using namespace std;
//#include< string>
void main()
{
    int a[3][4]={{1,2,3,4},{4,5,6,7},{7,8,9,10}};
    int (*p)[4] ,i,j ;
    p=a;
    for(i=0;i<3;i++ )
        for(j=0;j<4;j++)
            cout<<*(*(p+i)+j)<<endl;


}


#8
yukeyyo2011-11-19 00:44
#include<iostream>
using namespace std;
//#include< string>
void main()
{
    int a[3][4]={{1,2,3,4},{4,5,6,7},{7,8,9,10}};
   int *p ,i,j ;

 p=a[0];
 
    for(i=0;i<3;i++ )
        for(j=0;j<4;j++)
        {
            cout<<*(*(a+i)+j)<<endl;
            p++;
        }


}
指针重复使用了,必须加上p++,
#9
jj74125302011-11-22 00:32
7楼标准解....
1