当前位置: 首页 > news >正文

网站编辑面试高明专业网站建设报价

网站编辑面试,高明专业网站建设报价,网站建设整体方案论文,淘宝客官网目录 一、二维数组 1. 二维数组的定义 2. 二维数组的初始化 (1)部分初始化 (2)完全初始化 (3)省略行数初始化 3. 二维数组的访问 4. 二维数组的存储方式 5. 二维数组作为函数参数 (1&…

目录

一、二维数组

1. 二维数组的定义

2. 二维数组的初始化

(1)部分初始化

(2)完全初始化

(3)省略行数初始化

3. 二维数组的访问

4. 二维数组的存储方式

5. 二维数组作为函数参数

(1)指定行数和列数

(2)省略行数但指定列数

6. 二维数组的遍历

7. 动态分配二维数组

二、多维数组

1.三维数组

2. 多维数组的访问 

3. 多维数组作为函数参数

4. 多维数组的内存布局

5. 多维数组的注意事项


一、二维数组

1. 二维数组的定义

二维数组可以看作是数组的数组,即一个一维数组的每个元素又是一个一维数组。定义二维数组的一般形式为:

数据类型  数组名 [行数] [列数];

示例:

int matrix[3][4]; // 定义一个3行4列的二维整型数组 

这里,matrix 是一个二维数组,它有 3 行 4 列,总共包含 12 个整型元素。


2. 二维数组的初始化

(1)部分初始化

int  matrix[3][4] = {

        {1, 2},

        {5, 6, 7},

        {9}

};

 在这个例子中,没有明确初始化的元素会被自动初始化为 0。

(2)完全初始化

int matrix[3][4] = {

        {1, 2, 3, 4},

        {5, 6, 7, 8},

        {9, 10, 11, 12}

};

这里,所有的元素都被明确赋值。

(3)省略行数初始化

int matrix[ ][4] = {

         {1, 2, 3, 4},

         {5, 6, 7, 8},

         {9, 10, 11, 12}

};

 在初始化时可以省略行数,但列数不能省略,编译器会根据初始化列表自动确定行数。


3. 二维数组的访问

可以使用两个下标来访问二维数组中的元素,第一个下标表示行,第二个下标表示列,下标从 0 开始。

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>int main() {int matrix[3][4] = {{1, 2, 3, 4},{5, 6, 7, 8},{9, 10, 11, 12}};int element = matrix[1][2];  // 访问第2行第3列的元素,结果为7printf("The element at row 1, column 2 is: %d\n", element);//The element at row 1, column 2 is: 7return 0;
}

4. 二维数组的存储方式

在内存中,二维数组是按行优先顺序存储的,即先存储第一行的所有元素,再存储第二行的元素,依此类推。


5. 二维数组作为函数参数

(1)指定行数和列数

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>// 函数接收一个3行4列的二维数组
void printMatrix(int matrix[3][4]) {for (int i = 0; i < 3; i++) {for (int j = 0; j < 4; j++) {printf("%d ", matrix[i][j]);}printf("\n");}
}int main() {int matrix[3][4] = {{1, 2, 3, 4},{5, 6, 7, 8},{9, 10, 11, 12}};printMatrix(matrix);return 0;
}
//结果:
//1 2 3 4
//5 6 7 8
//9 10 11 12

(2)省略行数但指定列数

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>// 函数接收一个列数为4的二维数组
void printMatrix(int matrix[][4], int rows) {for (int i = 0; i < rows; i++) {for (int j = 0; j < 4; j++) {printf("%d ", matrix[i][j]);}printf("\n");}
}int main() {int matrix[3][4] = {{1, 2, 3, 4},{5, 6, 7, 8},{9, 10, 11, 12}};printMatrix(matrix, 3);return 0;
}
//结果:
//1 2 3 4
//5 6 7 8
//9 10 11 12

6. 二维数组的遍历

可以使用嵌套的 for 循环来遍历二维数组的所有元素。

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>int main() {int matrix[3][4] = {{1, 2, 3, 4},{5, 6, 7, 8},{9, 10, 11, 12}};for (int i = 0; i < 3; i++) {for (int j = 0; j < 4; j++) {printf("%d ", matrix[i][j]);}printf("\n");}return 0;
}
//结果:
//1 2 3 4
//5 6 7 8
//9 10 11 12

7. 动态分配二维数组

在 C 语言中,可以使用指针和 malloc 函数动态分配二维数组。

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>int main() {int rows = 3;int cols = 4;// 分配一个包含rows个指针的数组int** matrix = (int**)malloc(rows * sizeof(int*));for (int i = 0; i < rows; i++) {// 为每一行分配内存matrix[i] = (int*)malloc(cols * sizeof(int));}// 初始化数组for (int i = 0; i < rows; i++) {for (int j = 0; j < cols; j++) {matrix[i][j] = i * cols + j + 1;}}// 打印数组for (int i = 0; i < rows; i++) {for (int j = 0; j < cols; j++) {printf("%d ", matrix[i][j]);}printf("\n");}// 释放内存for (int i = 0; i < rows; i++) {free(matrix[i]);}free(matrix);return 0;
}
//结果:
//1 2 3 4
//5 6 7 8
//9 10 11 12

使用完动态分配的内存后,需要使用 free 函数释放内存,以避免内存泄漏。


二、多维数组

多维数组其实就是数组的数组。最常见的多维数组为二维数组,当然也存在三维数组、四维数组等更高维度的数组。

1.三维数组

// 定义一个2个二维数组,每个二维数组有3行4列的三维数组

int arr4[2][3][4];

// 初始化三维数组

int arr5[2][3][4] = {

        { {1, 2, 3, 4},

        {5, 6, 7, 8},

        {9, 10, 11, 12}

},

        {

                {13, 14, 15, 16},

                {17, 18, 19, 20},

                {21, 22, 23, 24}

        }

};


2. 多维数组的访问 

三维数组的访问

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>int main() {int arr[2][3][4] = {{{1, 2, 3, 4},{5, 6, 7, 8},{9, 10, 11, 12}},{{13, 14, 15, 16},{17, 18, 19, 20},{21, 22, 23, 24}}};// 访问第1个二维数组中第2行第3列的元素int element = arr[0][1][2];printf("Element at [0][1][2]: %d\n", element);//Element at [0][1][2]: 7return 0;
}

3. 多维数组作为函数参数

多维数组能够作为函数参数传递。在函数声明时,除了第一维的大小可以省略,其余维度的大小必须明确指定。

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>// 二维数组作为函数参数
void print_2d_array(int arr[][4], int rows) {for (int i = 0; i < rows; i++) {for (int j = 0; j < 4; j++) {printf("%d ", arr[i][j]);}printf("\n");}
}// 三维数组作为函数参数
void print_3d_array(int arr[][3][4], int num_2d_arrays) {for (int i = 0; i < num_2d_arrays; i++) {for (int j = 0; j < 3; j++) {for (int k = 0; k < 4; k++) {printf("%d ", arr[i][j][k]);}printf("\n");}printf("\n");}
}int main() {int arr_2d[3][4] = {{1, 2, 3, 4},{5, 6, 7, 8},{9, 10, 11, 12}};int arr_3d[2][3][4] = {{{1, 2, 3, 4},{5, 6, 7, 8},{9, 10, 11, 12}},{{13, 14, 15, 16},{17, 18, 19, 20},{21, 22, 23, 24}}};printf("2D Array:\n");print_2d_array(arr_2d, 3);printf("\n3D Array:\n");print_3d_array(arr_3d, 2);return 0;
}
//结果:
//2D Array :
//1 2 3 4
//5 6 7 8
//9 10 11 12
//
//3D Array :
//1 2 3 4
//5 6 7 8
//9 10 11 12
//
//13 14 15 16
//17 18 19 20
//21 22 23 24

4. 多维数组的内存布局

在 C 语言中,多维数组在内存里是按行优先的顺序存储的。也就是说,先存储第一行的所有元素,接着存储第二行的所有元素,依此类推。

例如,对于一个二维数组int arr[3][4],其内存布局如下:

arr[0][0] -> arr[0][1] -> arr[0][2] -> arr[0][3] ->

arr[1][0] -> arr[1][1] -> arr[1][2] -> arr[1][3] ->

arr[2][0] -> arr[2][1] -> arr[2][2] -> arr[2][3]


5. 多维数组的注意事项

  • 数组越界:访问多维数组时,要保证下标在合法范围内,防止出现数组越界的情况。

  • 初始化:若对多维数组进行部分初始化,未初始化的元素会被自动初始化为 0。

  • 内存占用:多维数组会占用大量的内存,使用时要注意内存的使用情况。

http://www.dtcms.com/a/510129.html

相关文章:

  • 微信开放平台开发文档山西seo推广方案
  • 亿建联网站是谁做的贵州城乡和住房建设厅网站
  • 用wordpress编写网站免费空间清理软件
  • 母婴护理服务网站模板网站建设公司需要哪些
  • 怎么样通过做网站赚钱吗陕西省泰烜建设集团有限公司网站
  • 网站建设服务怎么样电子商务网站前台建设
  • 可信网站申请住房建设网站柳州
  • 资源共享网站开发重庆网站建设挑夹夹虫
  • 昆明网站建设方案外包电商设计师工作内容
  • 上海网站设计kinglink网站备案号格式说明书
  • 建设文明网站包括太原关键词排名推广
  • 岳阳建设网站的公司有域名没有服务器怎么做网站
  • 大学生兼职网站建设策划书古尔邦节网站建设
  • 中国电子系统建设公司网站seo技术博客
  • 房地产网站广告销售怎么做网络推广软文
  • 外贸网站建站公司seo关键词排名优化公司
  • 广西柳州网站建设推荐网上怎么找房屋设计师
  • 网站做的好赚钱吗免费网站安全软件大全免费下载
  • 怎么做自己的门户网站做信息发布类网站用什么语言
  • h5模板网站有哪些台州建站网站模板
  • 建设银行网站修改台州做网站设计的公司
  • 做网站钱网站建设与网页设计的区别
  • 快站怎么做淘客网站自己做广告用什么软件
  • 网站网站开发软件优化大师班级优化大师
  • ps制作网站首页面教程深圳软件科技有限公司
  • 订餐网站的数据库建设网站服务器做哪些安全措施
  • 哪一家做网站好外贸网站建站
  • 郑州网站开发网站开发建设注册管理中心网站
  • 北湖区网站建设公司哪家好公司建设网站费用
  • 外语教学网站开发外国网站做问卷调查挣钱