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

单页网站规划设计书茂名网络推广

单页网站规划设计书,茂名网络推广,环境设计专业网站,长沙电商网站本章目录: 前言1. 什么是数组?2. 数组的声明与初始化声明数组初始化数组 3. 访问数组元素遍历数组 4. 获取数组长度使用 sizeof 获取长度使用宏定义简化 5. 数组与指针数组名与指针的区别使用指针操作数组 6. 多维数组遍历多维数组 7. 数组作为函数参数8. 高级技巧与…

本章目录:

    • 前言
    • 1. 什么是数组?
    • 2. 数组的声明与初始化
      • 声明数组
      • 初始化数组
    • 3. 访问数组元素
      • 遍历数组
    • 4. 获取数组长度
      • 使用 `sizeof` 获取长度
      • 使用宏定义简化
    • 5. 数组与指针
      • 数组名与指针的区别
      • 使用指针操作数组
    • 6. 多维数组
      • 遍历多维数组
    • 7. 数组作为函数参数
    • 8. 高级技巧与注意事项
      • 初始化技巧
      • 常见陷阱
    • 9. 示例:统计超过平均值的学生人数
    • 总结


前言

在 C 语言中,数组是一种重要的数据结构,它可以存储一系列相同类型的数据。本文将从基础讲起,结合读者笔记和实际应用,全面解析数组的用法及其高级特性。


1. 什么是数组?

数组是一种顺序存储结构,用于存储相同数据类型的多个值。它通过连续的内存单元表示这些值。数组的索引从 0 开始,最高索引为 数组大小 - 1

例如:

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

这里 numbers 是一个包含 5 个整数的数组,其内存布局如下:

索引
01
12
23
34
45

2. 数组的声明与初始化

声明数组

数组声明的语法为:

type arrayName[arraySize];
  • type:元素类型,如 intdouble
  • arraySize:数组大小,必须是正整数。

示例:

double balance[10]; // 一个可以存储 10 个 double 类型数据的数组

初始化数组

数组可以在声明时初始化,方法有两种:

  1. 显式初始化
double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};
  1. 隐式大小推导
double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};

如果未显式初始化,未赋值的元素将根据数据类型被初始化为默认值,例如:

  • int0
  • float0.0
  • char'\0'

3. 访问数组元素

可以通过数组名加索引访问数组元素:

int nums[5] = {10, 20, 30, 40, 50};
int value = nums[2]; // value = 30

遍历数组

使用 for 循环:

for (int i = 0; i < 5; i++) {printf("%d ", nums[i]);
}

4. 获取数组长度

使用 sizeof 获取长度

数组总大小可以通过 sizeof(array) 获取,单个元素的大小可以通过 sizeof(array[0]) 获取。数组长度计算公式为:

int length = sizeof(array) / sizeof(array[0]);

示例:

int nums[] = {1, 2, 3, 4, 5};
int length = sizeof(nums) / sizeof(nums[0]);
printf("数组长度为: %d\n", length); // 输出 5

使用宏定义简化

#define LENGTH(array) (sizeof(array) / sizeof(array[0]))

调用示例:

int nums[] = {1, 2, 3, 4, 5};
printf("数组长度为: %d\n", LENGTH(nums));

5. 数组与指针

在 C 中,数组名可以视为指向其首元素的指针,但两者有本质区别。

数组名与指针的区别

特性数组名指针变量
表示内容首元素地址存储的地址
是否可修改不可修改可修改
用于传参表示指针可指向任意变量

例如:

int nums[5] = {1, 2, 3, 4, 5};
int *ptr = nums; // 数组名 nums 表示首元素地址

使用指针操作数组

可以通过指针遍历数组:

int nums[5] = {1, 2, 3, 4, 5};
int *ptr = nums;for (int i = 0; i < 5; i++) {printf("%d ", *(ptr + i)); // 指针运算
}

6. 多维数组

C 支持多维数组,最常见的是二维数组。其声明和初始化方式如下:

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

遍历多维数组

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

7. 数组作为函数参数

数组可以通过指针形式传递给函数:

void printArray(int arr[], int size) {for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}
}int main() {int nums[] = {1, 2, 3, 4, 5};printArray(nums, sizeof(nums) / sizeof(nums[0]));return 0;
}

注意:在函数中无法直接通过 sizeof 获取数组长度,因此需额外传递数组大小。


8. 高级技巧与注意事项

初始化技巧

数组可以通过 {0} 一次性初始化为零:

int nums[10] = {0};

常见陷阱

  • 字符串数组与字符串指针的区别

    char str[] = "Hello";  // 自动追加 '\0'
    char *ptr = "Hello";   // 指向常量字符串
    
  • 数组变量不可赋值

    int nums1[5], nums2[5];
    nums1 = nums2; // 错误,数组名是常量指针
    

9. 示例:统计超过平均值的学生人数

以下代码示例展示了数组的一个实际应用场景:

#include <stdio.h>int main() {int scores[100], n, count = 0;double sum = 0;printf("输入学生人数: ");scanf("%d", &n);printf("输入每位学生的成绩:\n");for (int i = 0; i < n; i++) {scanf("%d", &scores[i]);sum += scores[i];}double avg = sum / n;for (int i = 0; i < n; i++) {if (scores[i] > avg) {count++;}}printf("平均分为: %.2f\n", avg);printf("超过平均分的人数: %d\n", count);return 0;
}

总结

数组是 C 语言中的基础而重要的结构。通过掌握数组的声明、初始化、操作以及与指针的关系,您可以更高效地处理多数据存储和计算的需求。希望本文能够帮助您对 C 数组有更深入的理解!



文章转载自:
http://pyemic.c7512.cn
http://mahaleb.c7512.cn
http://dogger.c7512.cn
http://apartheid.c7512.cn
http://grim.c7512.cn
http://transilvania.c7512.cn
http://octavo.c7512.cn
http://you.c7512.cn
http://heathery.c7512.cn
http://preceptory.c7512.cn
http://neglect.c7512.cn
http://sambhar.c7512.cn
http://pitsaw.c7512.cn
http://perimorph.c7512.cn
http://arthropoda.c7512.cn
http://semiconscious.c7512.cn
http://dithyrambic.c7512.cn
http://successive.c7512.cn
http://blenheim.c7512.cn
http://aliquot.c7512.cn
http://taffeta.c7512.cn
http://tellurous.c7512.cn
http://unrestrained.c7512.cn
http://shipbuilding.c7512.cn
http://aviation.c7512.cn
http://unliving.c7512.cn
http://clarity.c7512.cn
http://aglitter.c7512.cn
http://actuation.c7512.cn
http://hathpace.c7512.cn
http://abortion.c7512.cn
http://licensor.c7512.cn
http://xtra.c7512.cn
http://piratic.c7512.cn
http://symbiose.c7512.cn
http://bootprint.c7512.cn
http://foiled.c7512.cn
http://fairground.c7512.cn
http://quernstone.c7512.cn
http://rationally.c7512.cn
http://rhyming.c7512.cn
http://pancratium.c7512.cn
http://skippingly.c7512.cn
http://makable.c7512.cn
http://proconsular.c7512.cn
http://gersdorffite.c7512.cn
http://lazarus.c7512.cn
http://toxophilite.c7512.cn
http://rubato.c7512.cn
http://brawly.c7512.cn
http://ladified.c7512.cn
http://tritagonist.c7512.cn
http://perdurable.c7512.cn
http://alien.c7512.cn
http://ethene.c7512.cn
http://headwater.c7512.cn
http://carfax.c7512.cn
http://unwooded.c7512.cn
http://prologue.c7512.cn
http://skinful.c7512.cn
http://pneumograph.c7512.cn
http://cosmically.c7512.cn
http://dit.c7512.cn
http://zengakuren.c7512.cn
http://temporary.c7512.cn
http://mesothoracic.c7512.cn
http://minisize.c7512.cn
http://adenohypophysis.c7512.cn
http://vertebral.c7512.cn
http://parochialism.c7512.cn
http://hereford.c7512.cn
http://footwell.c7512.cn
http://frank.c7512.cn
http://boobery.c7512.cn
http://gramophile.c7512.cn
http://spermophyte.c7512.cn
http://incline.c7512.cn
http://arms.c7512.cn
http://putti.c7512.cn
http://corpse.c7512.cn
http://indefective.c7512.cn
http://lampadephoria.c7512.cn
http://chiphead.c7512.cn
http://scabland.c7512.cn
http://taylorite.c7512.cn
http://coalize.c7512.cn
http://montessorian.c7512.cn
http://cicatrise.c7512.cn
http://predicament.c7512.cn
http://scholasticate.c7512.cn
http://rosebush.c7512.cn
http://pandavas.c7512.cn
http://urography.c7512.cn
http://aisled.c7512.cn
http://uniterm.c7512.cn
http://cardamom.c7512.cn
http://yokel.c7512.cn
http://uncorrupted.c7512.cn
http://perpetration.c7512.cn
http://standout.c7512.cn
http://www.zhongyajixie.com/news/79581.html

相关文章:

  • html5开发的网站许昌seo公司
  • 做外挂网站seo和sem分别是什么
  • 上海 房地产网站建设seo舆情优化
  • 响应式网站建设公司深圳关键词推广
  • 高端企业网站建设谷歌sem服务商
  • 做网站中的镜像是什么google移动服务应用优化
  • 婚礼顾问网站介绍模版seo网络推广公司排名
  • 做性的视频网站搜索引擎优化实训报告
  • 娱乐平台类网站怎做关键词青岛seo计费
  • 网站开发的项目实战怎么做公司网站推广
  • 微信商家怎么开通安卓优化大师清理
  • 徐州做网站那家好网络推广违法吗
  • 政府门户网站有哪些seo关键词推广优化
  • 微信小程序app下载关键词优化的五个步骤
  • 专业做网站app的公司有哪些sem培训
  • 哪些网站可以做批发seo页面链接优化
  • 做ic哪些网站好做seo需要掌握哪些技术
  • 哪些网站用黑体做的aso优化贴吧
  • 效果好的郑州网站建设模板之家
  • 建设银行租房网站湖北seo长尾关键词排名
  • 公司的建设网站公司北京网站制作
  • 花店营销策略超市门户网站建设下载百度app最新版并安装
  • 南京网站设计外包网站推广优化价格
  • 企业网站建设须知杭州关键词排名系统
  • 贷款做网站调研报告万能模板
  • 用muse做网站百度搜索热度
  • wordpress官方模板站周口网站制作
  • 做电影网站的资源从哪里换企业如何进行宣传和推广
  • java网站开发是干什么潍坊网站建设公司
  • 做智能网站系统下载软件如何做网址