一、数组是什么

一组有个固定大小、相同数据类型的数据的集合。

数组可以分为:一维数组、二维数组、三维数组、...(维数不止一维:多维数组)

表格 : 行和列(二维数组)

二、一维数组

1、一般形式

类型说明符 数组标识符[常量表达式];

类型说明符:数组中所有元素的类型

数组标识符 :数组名,跟变量的命名规则一样。字母、数字、下划线

[]: 下标运算符

常量表达式:数组元素的个数,也就是数组的长度。只能是常量,不能是变量。

符号常量 #define LENGTH  10

2、访问数组里面每一个元素

通过下标访问得到每个元素的值。array[0]

3、一维数组的初始化

有几种方法:

(1)用花括号{} 直接赋值

char arr[4] = {'a','b','c','d'};//初始化列表

arr[0]='a',arr[1]='b',arr[2]='c',arr[3]='d'

(2)只给部分元素赋值,没有赋值的元素默认赋值为0

long arr[6] = {8,45,12,56};

short arr[10] = { 0 };

//遍历

for (int i = 0; i < 6;i++)

{

printf("arr[%d]=%ld\n",i,arr[i]);

}

(3)对全部元素初始化的时候,不指定数组元素的长度

short arr[] = {1,2,3,4,5,6,7,8};

编译器会根据我们给定的初始化元素的个数来定义这个数组的长度

数组越界:arr[8],arr[9] 编译器不会报错,

数组名:是一个指针常量,指向这个数组第一个元素的地址,数组的首地址。

4字符数组的初始化

char str[12] = "Hello World";//字符常量看做初始化列表

printf("%s\n",str);

4、数组元素赋值

char str[11] = {'H','e','l','l','o',' ','W','o','r','l','d'};

str[0] = 'W';

从键盘输入,为每一个元素赋值

int arr[5];

scanf("%d",&arr[0]);

scanf("%d", &arr[1]);

scanf("%d", &arr[2]);

scanf("%d", &arr[3]);

scanf("%d", &arr[4]);

for (int i = 0; i < 5;i++)

{

printf("%d,",arr[i]);

}

使用for循环:

int arr[5];

for (int i = 0; i < 5;i++)

{

scanf("%d", &arr[i]);

}

for (int i = 0; i < 5;i++)

{

printf("%d,",arr[i]);

}

/////

int arr[5];

scanf("%d", arr);

5、数组所占内存空间的大小

一段连续的内存空间

数组所占的内存空间大小 = 数组类型 * 数组的长度;

printf("%d\n",arr);//是一个指针常量,指向这个数组第一个元素的地址,数组的首地址。

//sizeof()

printf("%d\n",sizeof(arr));//整个数组的大小

数组的长度:

sizeof(arr) /sizeof(int);

6、const常量

不能够修改的量,一定要初始化。

const int i=10;

int arr[i];//不行

//const int i = 12;

//char arr[i] = {0};

三、多维数组

超过一维的就是多维数组,二维数组、三维数组....

1、二维数组

一般形式:

数据类型 数组名[常量表达式1][常量表达式2]

int arr[10];//一位数组

char arr[2][5];//二维数组

float arr[2][3][5];//三维数组

double ar[2][3][4][5];//四维数组

在内存中:一块固定大小、连续的内存空间

2、初始化

(1)、直接写在括号里面、按顺序排列

char arr[2][5]={0,1,2,3,4,5,6,7,8,9};

int arr[2][2][5]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};

打印一个二维数组

(2)、只给部分元素赋值,其余没有赋值的默认赋值为0

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

(3)、可以省略行下标,但是不能省略列下标

int arr[][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

(4)、用{}括起来,分行给他赋值

C构造类型 数组的更多相关文章

  1. c语言构造类型之数组_01

    构造类型--constructed type.至于定义,笔者就省略了,有兴趣的同学可以百度搜索https://www.baidu.com/.今天我们要说的是c语言中最简单的构造类型--数组(array ...

  2. C-冒泡排序,选择排序,数组

    ——构造类型 ->数组      ->一维数组      ->相同类型的一组数据      ->类型修饰符--数组名—[数组的元素个数(必须是整型表达式或者是整型常量,不能是变 ...

  3. iOS学习笔记---c语言第八天

    指针 首先将变量a的地址存放在另一个变量中,比如存放在变量b中,然后通过变量b来间接引用变量a,间接读写变量a的值.用来存放变量地址的变量,就称为"指针变量" int *p=nul ...

  4. OC基础-第1天

    #pragma mark - Day01_01_OC语言的历史(了解) 1) Objective - C 是一门面向对象的高级语言 2) Objective - C 简称 obj - C  \  OC ...

  5. C语言新学备忘_1

    #include <stdio.h> //C语言的标准输入 ,输出头文件扩展名为.h的文件称为头文件 //include称为文件包含命令 #include <stdlib.h> ...

  6. OC之OC与C的比较

    1. 从编写.编译.链接的流程. 1). 创建1个.m的源文件. 2). 在这个文件中写上符合OC语法规范的源代码. 3). 编译. a. 预编译: 执行预处理代码. b. 检查语法. c. 生成目标 ...

  7. 〖C语言学习笔记 〗(二) 数据类型

    前言 本文为c语言的学习笔记,很多只是留下来占位的 数据类型 助记:变量就是在内存中挖个坑并给这个坑命名,而数据类型就是挖内存的坑的尺寸 基础类型 整数类型: short int int long i ...

  8. C语言大总结

    C语言大总结 一. C语言基本常识 1.语言由函数组成 2.main是程序入口 3.C语言中不能出现中文或中文字符 (凝视和字符串除外) keyword : C语言提供表示特殊含义的单词 特点 : 1 ...

  9. 大学C++程序设计教程期末复习重点

    第一章 1.cin与count的应用<iostream> 例: cin>>a; cout<<"hello"<<endl; cout& ...

随机推荐

  1. POI CellStyle 中样式覆盖问题

    问题描述 在使用 Apache POI-3.8的时候,需要一个功能,就是处理上传得 Excel的 cell style.如果数据有错误,则标红或者加上其他 style 标识.但是当直接获取到 cell ...

  2. 嵌入式linux和stm32嵌入式开发这两者之间有什么关联性

    对于更开始入坑的同学,可能也像我一样搞不清楚两者的区别与联系.现在结合知乎网上的相关资料发一篇文章来具体分析. 基于STM32的开发属于微控制器开发领域,主要开发工具是keil或IAR,这种开发更准确 ...

  3. python使用pandas进行数据处理

    pandas数据处理 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器输入网址http://loc ...

  4. 力扣 - 剑指Offer 35.复杂链表的复制

    目录 题目 思路1 代码实现 思路2 代码实现 题目 请实现 copyRandomList 函数,复制一个复杂链表.在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 rando ...

  5. svg究竟是什么?

    svg究竟是什么? 1 要点 要点1:svg与jpg/png等格式的用途完全不同,不可相提并论,没有可比性,不可互相替代. 要点2:日常生活中,我们用相机拍摄自然景象得到的照片和视频,能且只能用jpg ...

  6. Codeforces 1404 D. Game of Pairs

    Codeforces 1404 D.Game of Pairs 给定\(2n\)个数\(1,2,...,2n\),A 和 B 将进行交互,规则如下: A 需要将元素分成 n 组 \(\mathbf{p ...

  7. 矩阵连乘问题的算法复杂度的计算--卡塔兰数(Catalan数)的数学推导和近似公式

    author: cust-- ZKe --------------------- 这里以连乘积加括号问题为背景: 由于矩阵的乘积满足结合律,且矩阵乘积必须满足左边矩阵的列数的等于右边矩阵的行数,不同的 ...

  8. MarkDown使用教程(In Atom)

    程序猿都爱写博客,在写博客的过程中,大量运用的就是MarkDown语法了.MarkDown不只是用来写博客,日常生活中的感悟.工作中的心得体会.项目任务安排等等大篇幅的文章都可以用MarkDown来迅 ...

  9. form表单ajax提交

    这里下面有两种  第一种是form表单里面添加了数据,并且含有上传的图片,第二种是from表单中不含有图片  只有普通数据 第一种form表单中包含有图片的类型: <form method=&q ...

  10. Spider--补充--Re模块_2

    # @ Author : Collin_PXY # Python 正则表达式的应用(二) # 正则表达式之所以让人头疼,很大程度是因为表达式里有大量的符号及它们的组合,还有很多匹配模式,想要记住比较困 ...