Micokery九九 2022-05-27 19:16 采纳率: 91.7%
浏览 28
已结题

指针变量所起的作用分析

请问下面这段代码中指针变量c 指针变量b 两次a=c,main函数中a=b是什么意思和起什么作用呢

#include<iosteram>
using namespace std;
void change(int *&array)
{
int 

}
int main(){
    int i,j,k;
    int (*array)[3]=new int[3][3];
    array[3][3]={{1,2,3},{4,5,6}{,8,9}};

#include<iostream>
using namespace std;
void change(int *&a)
{
  int b[3][3],i,j;
  int *c=a;
  for(i=0;i<3;i++)
  {
    for(j=0;j<3;j++)
 {
  b[i][j]=*a;
  a++;
 }
  }
 a=c;
for(i=0;i<3;i++)
{
    for(j=0;j<3;j++)
 {
        *a=b[j][i];
        a++; 
    }
 }
a=c;
}
void print(int *a)
{
  for(int i=0;i<9;i++)
  {
   cout<<*a<<"  ";
   a++;
   if((i+1)%3==0)
   cout<<endl;
  }
}
int main(void)
{
  int i,j;
  int *a,*b;
  a=(int *)new int[3][3];
  b=a;
  cout<<"请依次输入距阵中的元素:"<<endl;
 for(i=0;i<9;i++)
  {
     cin>>*a;
     a++;
 }
  a=b;
cout<<"此距阵中的元素为:"<<endl;
print(a);
change(a);
cout<<"经过转置后此距阵为:"<<endl;
print(a);
}


  • 写回答

2条回答 默认 最新

  • 关注

    a初始是指向数组的首地址
    c=a是让c也指向数组的首地址
    在循环中不断a++让a移动指向下一个元素的地址,在循环之后a指向了数组的结尾
    a=c是再次让a重新指向数组的首地址,好方便下一次循环

    a=b也是一样的作用

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月22日
  • 已采纳回答 6月14日
  • 创建了问题 5月27日