数组是:

  • 一组数据
  • 一组类型相同的数据
  • 在计算机底层,数组是一块连续的内存

为什么使用数组?

一年12个月

int m1=1, m2=2, m3=3, ... 麻烦

数组示例:

#include <stdio.h>
int main(int argc, char *argv[]) {
// 数组赋值
int month[] = {1,2,3,4,5,6,7,8,9,10,11,12}; // 求数组长度
int len = sizeof(month)/sizeof(int); // 访问数组元素
int i =0;
for(i =0; i<len; i++) {
printf("%d月_", month[i]);
}
return 0;
}

注意数组不要越界

数组越界,C语言不管!

比如下例中,变量_test会被循环破坏!

#include <stdio.h>
int main(int argc, char *argv[]) {
char arr[3];
int _test = 1; printf("循环前:_test = %d\n", _test);
int i = 1;
for(i = 0 ; i<10; i++) {
arr[i] = 9;
}
printf("循环后:_test = %d\n", _test); return 0;
}

循环后的结果并不是确定的:

循环前:_test = 1
循环后:_test = 2313

使用函数输出数组

C语言中,函数内无法获取数组长度,需要把数组的长度通过参数传入。

#include <stdio.h>

//返回值:void
//数组作参数:int arr[]
//声明简化:int[]
//需要传数组元素的个数
void printArray(int[],int); int main(int argc, char *argv[]) {
int a[5]= {1,3,5,7,9};
// 先求数组元素的个数
int nLen = sizeof(a)/sizeof(int) ;
printArray(a, nLen); return 0;
} void printArray(int arr[],int len) {
int i=0;
for(i = 0; i<len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}

数组的赋值

*注意:纯C语言中,[变量/const常量]不能用于定义数组长度,C++中可以。本例使用宏定义来表示数组长度。

#include <stdio.h>
#define ARR_LEN 5
void printArray(int[],int); int main(int argc, char *argv[]) {
// 分别赋值
int a[]= {1,3,5,7,9};
printArray(a, ARR_LEN); // 统一赋值
int b[ARR_LEN]= {0};
printArray(b, ARR_LEN); // 循环赋值
int c[ARR_LEN];
int i = 0;
for(i; i<ARR_LEN; i++ ) {
c[i]=i*10;
}
printArray(c, ARR_LEN); return 0;
} void printArray(int arr[],int len) {
int i=0;
for(i = 0; i<len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}

C语言讲义——数组的更多相关文章

  1. C语言讲义——数组和指针

    数组名表示的是这个数组的首地址.即如果有int a[10],则a 相当于&a[0]. #include <stdio.h> main() { int a[5]= {1,3,5,7, ...

  2. 【算法】C语言实现数组的动态分配

    C语言实现数组的动态分配 作者:白宁超 2016年10月27日20:13:13 摘要:数据结构和算法对于编程的意义不言而喻,具有指导意义的.无论从事算法优化方向研究,还是大数据处理,亦或者网站开发AP ...

  3. C语言一维数组、二维数组、结构体的初始化

    C语言数组的初始化表示方法 一.C语言一维数组初始化: (1)在定义数组时对数组元素赋以初值.如: static int a[10]={0,1,2,3,4,5,6,7,8,9}; 经过上面的定义和初始 ...

  4. go语言的 数组、slice、map使用(转)

    golang群 点击加入 go语言的 数组.slice.map使用, 由于网上有很好的说明, 不需要再写了,请看这几篇: Go语言中的 Array, Slice和 Map 深入学习golang五篇,以 ...

  5. go语言 类型:数组

    在go语言中数组array是一组特定长度的有序的元素集合. go的数组类型由两部分组成——类型和长度,二者缺一不可.数组本来就是一块存储相同类型元素的连续内存空间,因此决定一个数组的类型,必然需要决定 ...

  6. C语言基础--数组及相关

    概念: 一堆相同类型的数据的有序集合 格式: 元素类型  数组名称[ 元素个数 ] 定义数组: // 定义了一个名称叫做scores的数组, 数组中可以存放3个int类型的数据 ]; // 只要定义一 ...

  7. 学习C语言的数组

    C语言的数组 数组声明的实例:int num[3];只要记下这个模板就好. 不建议使用变量定义数组,如果使用了变量定义数组,作为数组的元素的个数,不初始化的情况下是随机值,如果初始化会直接报错 注意: ...

  8. 对于C语言中数组名是指针的理解

    我们都知道,c语言中数组名是一个指针,比如下面这段代码 #include<iostream>using namespace std;int main(){ int a[4]={1,2,3, ...

  9. c语言中数组相关问题

    c语言中数组相关问题: 1.数组基本定义: 相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标.组成数组 ...

随机推荐

  1. F. Moving Points 解析(思維、離散化、BIT、前綴和)

    Codeforce 1311 F. Moving Points 解析(思維.離散化.BIT.前綴和) 今天我們來看看CF1311F 題目連結 題目 略,請直接看原題. 前言 最近寫1900的題目更容易 ...

  2. C. Bank Hacking 解析(思維)

    Codeforce 796 C. Bank Hacking 解析(思維) 今天我們來看看CF796C 題目連結 題目 略,請直接看原題. 前言 @copyright petjelinux 版權所有 觀 ...

  3. html2canvas.js——HTML转Canvas工具

    我们经常会遇上动态生成海报的需求,而在Web前端中,生成图片非Canvas莫属.但是在实际工作当中,为了追求效率,我们会不可避免地去使用一些JS插件,而html2canvas.js就是一款优秀的插件, ...

  4. XJOI 夏令营501-511NOIP训练14 砍树(2)

    小A是小B家的园丁.小B的家里有n棵树,第i棵树的横坐标为i.一天,小B交给小A一个任务,让他降低自己家中的某些树木的高度.这个任务对小A来说十分简单,因为他有一把极其锋利的斧头和一门独门砍树秘籍,能 ...

  5. Java注解(入门级)

    Java注解 前言 近日在阅读开源项目,发现项目里好多奇奇怪怪的注解(@DataScope.@Log...)看得我一脸懵,不知道大家是否也有过这样的经历,回想了一下,发现自己对于注解的知识,好像只停留 ...

  6. Kubernetes-17:Kubernets包管理工具—>Helm介绍与使用

    Kubernets包管理工具->Helm 什么是Helm? 我们都知道,Linux系统各发行版都有自己的包管理工具,比如Centos的YUM,再如Ubuntu的APT. Kubernetes也有 ...

  7. leetcode56:restore-ip-addresses

    题目描述 现在有一个只包含数字的字符串,将该字符串重新存储成IP地址的形式,返回所有可能的情况. 例如: 给出的字符串为"25525511135", 返回["255.25 ...

  8. python_面向对象_组合

    组合: 一个类的对象是另外一个类对象的属性 # 组合 # 一个类的对象是另一个类对象的属性 # 什么时候使用组合:当两个类之间的关系是 :什么有什么的关系 : 班级有学生 学生有班级 班级有课程 图书 ...

  9. QQ群web前端分析三——pageSpeed

    使用pageSpeed插件,试试页面分析,看看有没有什么问题.等会上图 第一个问题,大部分人使用默认图片,但是这个图片的url确不一样,导致重复请求了若干次,这个...., 第二个问题,图片没有指定默 ...

  10. MySql Binlog 说明 & Canal 集成MySql的更新异常说明 & MySql Binlog 常用命令汇总

    文章来源于本人的印象笔记,如出现格式问题可访问该链接查看原文 原创声明:作者:Arnold.zhao 博客园地址:https://www.cnblogs.com/zh94 目录 背景介绍 开启MySq ...