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

长春 做网站多少钱最新军事新闻

长春 做网站多少钱,最新军事新闻,用书籍上的文章做网站SEO,英文网站建设目录 数组的基本概念一维数组的声明、初始化与使用一维数组在内存中的存储二维数组的声明、初始化与使用二维数组在内存中的存储数组越界问题数组作为函数参数应用实例:冒泡排序扩展应用:三子棋与扫雷游戏 1. 数组的基本概念 数组是一组相同类型元素的…

目录

  1. 数组的基本概念
  2. 一维数组的声明、初始化与使用
  3. 一维数组在内存中的存储
  4. 二维数组的声明、初始化与使用
  5. 二维数组在内存中的存储
  6. 数组越界问题
  7. 数组作为函数参数
  8. 应用实例:冒泡排序
  9. 扩展应用:三子棋与扫雷游戏

1. 数组的基本概念

数组是一组相同类型元素的集合,通过下标访问元素。分为一维数组和二维数组:

  • 一维数组:线性结构,元素按顺序存储。
  • 二维数组:可视为“数组的数组”,常用于表示矩阵或表格。

2. 一维数组的声明、初始化与使用

2.1 声明与初始化

// 完全初始化
int arr1[5] = {1, 2, 3, 4, 5}; // 不完全初始化(剩余元素自动补0)
int arr2[5] = {1, 2}; // 省略数组大小(编译器自动计算)
int arr3[] = {1, 2, 3}; // 等价于 int arr3[3] = {1, 2, 3};

2.2 访问与遍历

#include <stdio.h>int main() {int arr[5] = {10, 20, 30, 40, 50};int sz = sizeof(arr) / sizeof(arr[0]); // 计算数组长度for (int i = 0; i < sz; i++) {printf("arr[%d] = %d\n", i, arr[i]);}return 0;
}

输出结果

arr[0] = 10
arr[1] = 20
...
arr[4] = 50

3. 一维数组在内存中的存储

数组元素在内存中是连续存储的,每个元素的地址按数据类型大小递增:

#include <stdio.h>int main() {int arr[3] = {0};for (int i = 0; i < 3; i++) {printf("&arr[%d] = %p\n", i, &arr[i]);}return 0;
}

输出结果(示例):

&arr[0] = 0x7ffd42a1a3c0
&arr[1] = 0x7ffd42a1a3c4  // 相差4字节(int类型大小)
&arr[2] = 0x7ffd42a1a3c8

4. 二维数组的声明、初始化与使用

4.1 声明与初始化

// 完全初始化
int arr1[2][3] = {{1, 2, 3}, {4, 5, 6}};// 行可省略,列不可省略
int arr2[][3] = {{1}, {4, 5}}; // 未初始化的元素补0// 连续初始化(按行填充)
int arr3[2][3] = {1, 2, 3, 4, 5, 6};

4.2 遍历二维数组

#include <stdio.h>int main() {int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};for (int i = 0; i < 2; i++) {for (int j = 0; j < 3; j++) {printf("%d ", arr[i][j]);}printf("\n");}return 0;
}

输出结果

1 2 3 
4 5 6 

5. 二维数组在内存中的存储

二维数组在内存中按行连续存储

#include <stdio.h>int main() {int arr[2][3] = {0};for (int i = 0; i < 2; i++) {for (int j = 0; j < 3; j++) {printf("&arr[%d][%d] = %p\n", i, j, &arr[i][j]);}}return 0;
}

输出结果(示例):

&arr[0][0] = 0x7ffd42a1a3c0
&arr[0][1] = 0x7ffd42a1a3c4  // 连续存储
&arr[0][2] = 0x7ffd42a1a3c8
&arr[1][0] = 0x7ffd42a1a3cc  // 下一行起始地址
...

6. 数组越界问题

C语言不强制检查数组越界,需程序员自行避免:

int arr[3] = {1, 2, 3};
printf("%d", arr[3]); // 越界访问,结果不可预测

7. 数组作为函数参数

数组名本质是首元素地址,传递时会退化为指针:

#include <stdio.h>void printArray(int arr[], int sz) {for (int i = 0; i < sz; i++) {printf("%d ", arr[i]);}
}int main() {int arr[] = {1, 2, 3};int sz = sizeof(arr) / sizeof(arr[0]);printArray(arr, sz); // 传递数组名和长度return 0;
}

8. 应用实例:冒泡排序

正确传递数组长度的冒泡排序实现:

#include <stdio.h>void bubbleSort(int arr[], int sz) {for (int i = 0; i < sz - 1; i++) {for (int j = 0; j < sz - 1 - i; j++) {if (arr[j] > arr[j + 1]) {int tmp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = tmp;}}}
}int main() {int arr[] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0};int sz = sizeof(arr) / sizeof(arr[0]);bubbleSort(arr, sz);for (int i = 0; i < sz; i++) {printf("%d ", arr[i]); // 输出:0 1 2 3 4 5 6 7 8 9 }return 0;
}
http://www.dtcms.com/wzjs/233128.html

相关文章:

  • 做网站的系统优化app
  • 网站后台打不开的原因东莞今天新增加的情况
  • 酒店网站建设的重要性深圳高端seo公司助力企业
  • 网站开发的硬件环境是什么交换链接平台
  • js怎么做打开网站就复制内容重庆seo推广运营
  • 网页制作与网站开发用的软件游戏推广员好做吗
  • 网站群建设模板迁移原站迁移pcseo优化招商
  • 公安网站备案 时间手机建站教程
  • WordPress提交留言郑州seo顾问外包公司
  • 门户网站的区别网络营销策略包括哪几大策略
  • 搭建自己的博客网站seo工具不包括
  • 网站真人主持网页制作app
  • 手机在网上怎么创建自己的网站百度首页网址是多少
  • 安徽伟诚建设工程有限公司网站策划公司是做什么的
  • 武汉S001网站建设哪家好30条新闻摘抄
  • 化妆品网站主页设计网站排名查询
  • 网站无法访问seo软件安卓版
  • 网站建设和推广需要多少费用关键词优化推广
  • 外贸网站用什么字体seo优化中以下说法正确的是
  • 怎么申请建立一个公司网站正规接单赚佣金的平台
  • 做哪些网站比较赚钱方法有哪些seo诊断方案
  • 重庆龙头寺找做墩子师傅网站好的seo网站
  • 六兄弟做网站百度网址导航
  • 专业网站设计公司有哪些今日头条新闻最全新消息
  • 网站怎么做会让神马搜索到网站seo综合查询
  • 云南网站建设公司排行平台运营推广方案
  • 广东网广东网站建设护肤品软文推广
  • 公司品牌网站建设武汉seo结算
  • 自己做网站需要学什么软件下载百度权重工具
  • 做类似美团的网站得多少钱百度教育会员