【发布时间】:2013-05-26 21:02:12
【问题描述】:
我被这个问题困住了,我真的需要一些帮助。我有一个功能 void f(int *a, int m, int n) 它应该使用指针打印所有元素。 我试过了
for(i = 0; i < m; ++i)
for(j = 0; j < n; ++j)
cout << *((a+i)+j);
但它不会打印正确的元素。请帮我。
在主函数中,我声明矩阵,然后读取元素。
int col, rand, i, j;
int a[100][100];
cout << " col = ";
cin >> col;
cout << " rand = ";
cin >> rand;
for(i = 0; i < rand; ++i)
for(j = 0; j < col; ++j)
{
cout << "a[" << i << "]" << "[" << j << "] = ";
cin >> *(*(a+i)+j);
}
当我尝试从主函数打印元素时,一切都很好。
for(i = 0; i < rand; ++i)
for(j = 0; j < col; ++j)
cout << *(*(a+i)+j);
f(*a, col, rand); // function calling in the main function
【问题讨论】:
-
a[1] = *(a+1),a[1][2] = *(*(a+1)+2).. 将此应用于您的问题,您会没事的。 -
它给了我一个错误,无效的类型参数,矩阵像指针一样传递,所以不能像那样访问元素。
-
您发布的代码也给出了多个错误,因此无法按照您描述的方式访问元素。虽然可以猜测你在说什么,但编程不是猜测。贴一个小而完整的例子,编译运行并演示问题。
标签: c++ function pointers matrix