美文网首页
C语言二维数组

C语言二维数组

作者: AuglyXu | 来源:发表于2018-09-06 14:38 被阅读0次

二维数组

  • 格式: 数据类型 数组名称[一维数组的个数][一维数组中元素的个数];
  • 数据类型: 一维数组中存储数据的类型
  • 数组名称: 标识符
  • 二维数组其实也是一个数组, 只不过数组中的元素比较特殊, 每个元素又是一个数组而已

二维数组的遍历

    for(int i = 0; i < 2; i++){
          for(int j = 0; j < 3; j++){
            printf("scores[%i][%i] = %i\n", i, j,scores[i][j]);
        }
    }

二维数组的内存表现形式

char chs[2][3] = {{'l','n','j'}, {'z','q','x'}};

图片如下:


由图可见:
chs = &chs = &chs[0] = &chs[0][0] //结果都为二维数组中第一维数组中首元素的地址


二维数组和函数

注意点:

1.如果形参时基本数据类型, 那么在函数内修改形参不会影响到外界的实参

2.如果形参是数组, 那么在函数内修改形参会影响到外界的实参

void change1(char ch){
    ch = 'T';
}
char chs[2][3] = {{'l','n','j'}, {'z','q','x'}};
printf("chs[0][0] = %c\n", chs[0][0]); // l
change1(chs[0][0]);
printf("chs[0][0] = %c\n", chs[0][0]);  // l

注意点:以下代码改变的是chs[1][0]的数据!!!

void change2(char ch[]){
    ch[0] = 'T';
}
printf("chs[0][0] = %c\n", chs[0][0]); // l
change2(chs[1]);
printf("chs[1][0] = %c\n", chs[1][0]);  // T

注意点:以下代码二维数组的一位数组的元素个数不能少

void change3(char ch[][3]){
    ch[0][0] = 'T';
}
printf("chs[0][0] = %c\n", chs[0][0]); // l
change3(chs);
printf("chs[0][0] = %c\n", chs[0][0]); // T

二维数组的初始化

1.定义的同时初始化 {{},{}}

 int nums[2][3] = {{1, 3, 5},{2, 4, 6}};

2.先定义再初始化

int nums[2][3];
nums[0][0] = 999;
nums[0][1] = 888;
nums[0][2] = 777;
nums[1][0] = 666;
nums[1][1] = 555;
nums[1][2] = 444;

3.特殊的方式 (作为了解)
如果在定义的同时初始化, 那么二维数组中一维数组的个数可以省略

int nums[][3] = {{1, 3, 5},{2, 4, 6}};

如果在定义的同时初始化, 那么初始化中每个一维数组的{}也可以省略
会依次从前往后存入一维数组

int nums[][3] = {1, 3, 5 ,2, 4};
{{1, 3, 5},{2, 4, 0}}

注意点: 二维数组中每一个一维数组元素的个数不能省略
以下定义都会报错

int nums[2][] = {{1, 3, 5},{2, 4, 6}};
int nums[][] = {{1, 3, 5},{2, 4, 6}};

int nums[2][3];
nums = {{1, 3, 5},{2, 4, 6}};

相关文章

  • 2019-02-28 计算机二级C语言程序设计之数组(下)

    参考资料:高教版《全国计算机等级考试二级教程——C语言程序设计》《21天学通C语言》 二维数组的定义和二维数组元素...

  • C语言的指针与数组(进阶篇之二)

    二、二维数组与指针 (1).二维数组元素在内存中的存放方式C语言中,二维数组元素值在内存中是线性的。跟一维数组相差...

  • 初学C语言

    初学C语言——二维数组 #include int main(int argc,const char * argv...

  • C语言数组——二维数组

    C语言系列目录 C/C++学习资源(百度云盘链接)计算机二级资料(过级专用)C语言学习路线(从入门到实战)编写C语...

  • 静心沉淀,厚积薄发

    今天主要是看来c语言中关于数组的知识,数组按照空间大小的不同,数组分为一维数组,二维数组,多维数组,按照元素种...

  • C语言二维数组

    二维数组 格式: 数据类型 数组名称[一维数组的个数][一维数组中元素的个数]; 数据类型: 一维数组中存储数...

  • C语言二维数组

    二维数组 格式 数组名就是数组的地址 注意点 所以chs[0]和chs[1]代表的是二维数组中的一维数组的名称 所...

  • C语言-二维数组

    前文介绍的数组只有一个下标,称之为一维数组,其数组元素为单下标变量。然而,在实际问题中,有很多变量是二维或者多维的...

  • Go 切片和数组

    数组 go创建数组和 c 语言类似,有如下两种方式: 切片 切片声明和数组类似,只是没有传递长度 创建二维切片,并...

  • Ucos系统常用的数据结构有哪些?

    1)表 链表 表中主要了解链表,尤其是单向链表。 2)数组 一维数组 二维数组 使用数组有什么好处,在c语言中,数...

网友评论

      本文标题:C语言二维数组

      本文链接:https://www.haomeiwen.com/subject/pfkxgftx.html