数组是:

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

为什么使用数组?

一年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. Djano之数据库--ORM

    一.建立数据库模型类 1.在model里创建模型类.(继承models.Model) 1 class Order(models.Model): 2 TYPE_CHOICE = ( 3 (0, u&qu ...

  2. zookeeper单机/集群安装和使用

    简书原文地址:https://www.jianshu.com/p/88194fde9a07 或者关注我的公众号"进阶者euj" 前提是本机有jdk 一.单机安装 1.去官网下载zo ...

  3. NOI2020D1T1美食家

    传送门:QAQQAQ 完了完了NOI签到题全班打不出来,真就全部成为时代的眼泪了... 首先$O(mT)$的$dp$显然,然后因为$T$很大$w$很小矩阵快速幂显然,但是有$k=200$卡不过去. 然 ...

  4. JSP启动,错误500,实例化Servlet类异常

    jps的页面报 HTTP   500  -Internal Server Error 实例化Servlet类[servlet.Userservler]异常 javax.servlet.ServletE ...

  5. ElasticSearch 集群基本概念及常用操作汇总(建议收藏)

    内容来源于本人的印象笔记,简单汇总后发布到博客上,供大家需要时参考使用. 原创声明:作者:Arnold.zhao 博客园地址:https://www.cnblogs.com/zh94 目录: Elas ...

  6. 不断要求用户输入学生姓名,输入q结束.

    while (true) { Console.WriteLine("请输入学生姓名"); string a = Console.ReadLine(); if (a == " ...

  7. SpringBoot的外部化配置最全解析!

    目录 SpringBoot中的配置解析[Externalized Configuration] 本篇要点 一.SpringBoot官方文档对于外部化配置的介绍及作用顺序 二.各种外部化配置举例 1.随 ...

  8. from `float` to `np.floating` is deprecated

    运行tensorflow测试程序时,出现:FutureWarning: Conversion of the second argument of issubdtype from `float` to ...

  9. Docker系列02—Docker 网络模式

    一.Docker的四种网络模式 1.Docker 的四种网络模式: Bridge container 桥接式网络模式 Host(open) container 开放式网络模式 Container(jo ...

  10. C# type对象

    新建控制台应用程序 新建一个类 class MyClass { private int id; private int age; public int numb; public string Name ...