数组是:

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

为什么使用数组?

一年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. java数据结构-07栈

    一.什么是栈 栈是一种线性结构,栈的特点就是先进后出(FILO):就像弹夹装子弹一样,最先压进去的在最底下,最后才被射出.  二.相关接口设计  三.栈的实现 栈可以用之前的数组.链表等设计,这里我使 ...

  2. viewpage和tablayout导航栏

    引入material库: implementation 'com.google.android.material:material:1.2.1' <?xml version="1.0& ...

  3. 全球最火的程序员学习路线!没有之一!3天就在Github收获了接近1w点赞

    大家好,我是G哥,目前人在荆州办事,但是干货还是要安排上! 国外有一个爆火的开发人员学习路线,目前已经在 Github收获了 131 k+ star,Star 数量在 Github 所有仓库中排名第 ...

  4. STM32入门系列-使用库函数点亮LED软硬件分析

    电路图分析 首先找来单片机的原理图,根据原理图进行相关的设计工作. 例如在上图中相同网络标号表示它们是连接在一起的,因此D1发光二极管阴极是连接在STM32的PC0管脚上,D2指示灯阴极连接在PC1管 ...

  5. python进程间共享数值、字典、列表变量

    ##python进程间共享数值.字典.列表变量 关注公众号"轻松学编程"了解更多. import multiprocessing def worker(num, mgr_dict, ...

  6. 【QT】 QThread部分源码浅析

    本文章挑出QThread源码中部分重点代码来说明QThread启动到结束的过程是怎么调度的.其次因为到了Qt4.4版本,Qt的多线程就有所变化,所以本章会以Qt4.0.1和Qt5.6.2版本的源码来进 ...

  7. python开发--基础知识-(持续更新)

    python基础 --基础: 1, 第一句python - 用cmd 调用--python (路径)+(文件名)) 扩展名是任意的 - 导入模块是,如果不是.py文件,可能导入不成功 - python ...

  8. 转载:WIFI无线协议802.11a/b/g/n/ac的演变以及区别

    WIFI无线协议802.11a/b/g/n/ac的演变以及区别 版权声明:版权所有,转载须注明出处. https://blog.csdn.net/Brouce__Lee/article/details ...

  9. 经典分治问题,平面N个点求最近点对

    大家好,我们今天来看一道非常非常经典的算法题--最近点对问题. 这个问题经常在各种面试当中出现,难度不低,很少有人能答上来.说实话,我也被问过,因为毫无准备,所以也没有答上来.是的,这道题有点神奇,没 ...

  10. C++的四种强制转型形式:

    C++同时提供了四种新的强制转型形式(通常称为新风格的或C++风格的强制转型): const_cast(expression)dynamic_cast(expression)reinterpret_c ...