注册 登录
编程论坛 C语言论坛

数组和指针,不太明白

可爱萌萌哒 发布于 2020-02-11 15:39, 1829 次点击
一维数组的数组名代表首地址,二维数组怎么的计算?,int a[i][j],用指针对二维数组的进行运算,怎么用?二级指针是什么意思,没太看懂?二位数组有行下标和列下标,怎么进行下标的运算?谢谢各位!!!
7 回复
#2
叶纤2020-02-11 16:32
我第一天学习c++的时候写的就是一维数组,第二天写二维数组,在写数组的时候理解了双for循环的应用,楼主多写写就理解了,没有那么多为什么,答案都在后一章的书里,多读书就会知道答案
#3
自学的数学2020-02-11 16:44
二维数组在概念上是二维的,有行和列,但在内存中所有的数组元素都是连续排列的,它们之间没有“缝隙”。C语言中的二维数组是按行排列的,也就是先存放 a[0] 行,再存放 a[1] 行,最后存放 a[2] 行;每行中的 N 个元素也是依次存放。C语言允许把一个二维数组分解成多个一维数组来处理。
#4
可爱萌萌哒2020-02-11 19:20
回复 3楼 自学的数学
好的,谢谢
#5
可爱萌萌哒2020-02-11 19:21
回复 2楼 叶纤
把指针插进来就有点儿迷茫
#6
叶纤2020-02-11 20:58
回复 5楼 可爱萌萌哒
我不了解c语言,但我潜意识告诉我,指针不是必须品,能用非指针写的代码就不要用指针
比如下面二维数组,我明明可以不需要指针也能得到想要的答案,为什么还要多此一举把代码搞的那么难读
程序代码:
#include<iostream>
using namespace std;
void a( double(*)[5],int length);//每一行设置成地址

int main() {
double c=0;
    double b[3][5]= {
        {1.1,2.1,3.1,4.1,5.1},
        {6.1,7.1,8.1,9.1,10.1},
        {1.2,2.2,3.2,4.2,5.2}
    };
    a(b,3);
    }
void a( double(*arr)[5],int length)
{   for(int i=0;i<length;++i)
    {   for(int j=0;j<5;++j)
        {   cout <<arr[i][j]<<"\t";
        }
        cout << endl;
    }
}


 

#7
可爱萌萌哒2020-02-11 21:01
回复 6楼 叶纤
好的谢谢,麻烦您了,我仔细看看
#8
黑色电视剧2020-02-12 08:47
还需要对应的代码
1