我遇到了这个问题,我真的需要一些帮助。我有一个功能 void f(int * a,int m,int n),它应该使用指针打印所有元素。 我试过了
for(i = 0; i < m; ++i)
for(j = 0; j < n; ++j)
cout << *((a+i)+j);
但它不会打印正确的元素。请帮我。
在main函数中我声明了矩阵然后我读了元素。
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
答案 0 :(得分:2)
尝试
cout << *(a+i*(p+1)+j);
但我认为以下内容也有效。 (m
和n
与r
和p
之间的关系需要澄清。
for(i = 0; i <= r; ++i)
for(j = 0; j <= p; ++j)
cout << *a++;