c++中怎么通过指向二维数组的指针给二维数组赋值?

baidu_27037479 2015-04-02 10:32:19
void Input(double (*COMPLEX)[2],int Number)
{
int dReal=1,dImage=2;
cout<<"请输入实部:";
scanf("%d",*(COMPLEX+Number)+dReal);
cout<<"请输入虚部:";
scanf("%d",*(COMPLEX+Number)+dImage);
}
void main
{
double arrComplex[10][2],(*ArrComplex)[2]; //用二维数组存放复数
ArrComplex=arrComplex;
Input(ArrComplex,Number);
}



这样可以给二维数组赋值吗?
...全文
532 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fly_dragon_fly 2015-04-03
  • 打赏
  • 举报
回复
可以的,运行一下就知道结果了
赵4老师 2015-04-03
  • 打赏
  • 举报
回复
仅供参考:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
int **newarr2d(int rows,int cols) {
    int **p,i;

    p=(int **)malloc(rows*sizeof(int *));
    if (NULL==p) exit(1);
    for (i=0;i<rows;i++) {
        p[i]=(int *)malloc(cols*sizeof(int));
        if (NULL==p[i]) exit(1);
    }
    return p;
}
void deletearr2d(int **p,int rows) {
    int i;

    for (i=0;i<rows;i++) {
        free(p[i]);
    }
    free(p);
}
int main() {
    int **arr2d,i,j,r,c;

    r=4;
    c=5;
    //在堆中开辟一个4×5的二维int数组
    arr2d=newarr2d(r,c);
    for (i=0;i<r;i++) {
        for (j=0;j<c;j++) {
            arr2d[i][j]=i*c+j;
        }
    }
    for (i=0;i<r;i++) {
        for (j=0;j<c;j++) {
            printf(" %2d",arr2d[i][j]);
        }
        printf("\n");
    }
    deletearr2d(arr2d,r);

    r=6;
    c=3;
    //在堆中开辟一个6×3的二维int数组
    arr2d=newarr2d(r,c);
    for (i=0;i<r;i++) {
        for (j=0;j<c;j++) {
            arr2d[i][j]=i*c+j;
        }
    }
    for (i=0;i<r;i++) {
        for (j=0;j<c;j++) {
            printf(" %2d",arr2d[i][j]);
        }
        printf("\n");
    }
    deletearr2d(arr2d,r);

    return 0;
}
//  0  1  2  3  4
//  5  6  7  8  9
// 10 11 12 13 14
// 15 16 17 18 19
//  0  1  2
//  3  4  5
//  6  7  8
//  9 10 11
// 12 13 14
// 15 16 17
//
baidu_27037479 2015-04-02
  • 打赏
  • 举报
回复
引用 1 楼 jiht594 的回复:
循环 一个一个元素赋值
scanf("%d",*(COMPLEX+Number)+dReal); 这个能给二维数组赋值吗,或者说 scanf("%d",*(COMPLEX+Number)+dReal); 这个是不是有效的语句?
baidu_27037479 2015-04-02
  • 打赏
  • 举报
回复
引用 1 楼 jiht594 的回复:
循环 一个一个元素赋值
while( iSelection != MENU_EXIT ) { //显示菜单 ShowMenu(); //返回用户选择的菜单序号 iSelection = MenuSelection(); //判断用户的输入,执行相应的功能 switch( iSelection ) { case MENU_INPUT: if(Number>= MaxNumbers) cout<<"最多只能保存"<<MaxNumbers<<"个复数。"<<endl; else { if(Input(ArrComplex,Number)); Number=Number+1; } break; case MENU_QUERY: Output( ArrComplex, Number); break; case MENU_SORT: Output_by_Model(ArrComplex , Number); break; case MENU_EXIT: break; default: cout<<"\t***输入错误,请重新操作."<<endl; break; } //end of switch 这个是外循环
jiht594 2015-04-02
  • 打赏
  • 举报
回复
循环 一个一个元素赋值

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧