黑马程序员——C基础——数组
来源:互联网 发布:淘宝聚划算提前购物车 编辑:程序博客网 时间:2024/04/30 03:06
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
数组的定义:顾名思义,数组就是用来存储一组数据的。
数组的特点:
1.数组只能够存储一种类型的数据。比如说int类型、float类型等。
2.数组里面的数据称为元素。
3.数组必须在定义的时候就确定其大小,定义过后它的大小就不能再改变了。
数组的定义有两种形式,第一种是:
数据类型 数组名[数组大小];数组名[数组大小] = {数据1,数据2,...,数据n}; 这种形式定义的数组明确的写出了数组的大小,然后再往里面写入数据,这里要注意写入的数据的个数不能够大于数组的大小。这种形式也可以在定义数组的同时对其进行初始化,形式为:数据类型 数组名[数组大小] = {数据1,数据2,...,数据n};
第二种形式:
数据类型 数组名[] = {数据1,数据2,...,数据n}; 这种形式的定义的数组没有直接写出数组的大小,但是我们的数组大小也是确定的,它是根据输入的数据的个数来判断数组的大小,输入n个数据的话数组的大小也就是n。这种形式只能定义和初始化同时进行。
下面我们分别用上面的两种形式来定义一个int类型的数组,并对其进行初始化。
int a[5]; a[5] = {1, 2, 4, 6, 3};
上面定义的数组a[5]的大小就是5。我们还可以这样对其初始化:
int a[5]; a[5] = {1, 2, 4, 6};
上面我们定义的数组的大小就是5,但是我们对其初始化的时候只写了四个数据,那么第五个数据是什么呢?这里C语言对未进行赋值的元素都有一个默认的值。int类型的数据默认的就是0。
下面我们用上面的第二种形式来定义一个int类型的数组,并对其进行初始化:
int a[] = {3, 6, 8, 10, 23};
这里我们虽然没有直接定义数组的大小,但是从输入的元素的个数我们可以得知数组a的大小是5。
下面我们学习数组的遍历,遍历就是访问数组中的所有元素。数组中的每个元素都有一个名字,它的名字就是数组名加上它的元素标号。数组的元素标号是从0开始的,也就是说数组的第一个元素的标号就是0。比如说下面的数组:
int a[4] = {3, 6, 8, 10};
上面的数组中的元素名就是从a[0]到a[3]四个元素名。下面我们来遍历这个数组:
for (int i = 0; i < 4; i++) printf("a[%d] = %d\n", i, a[i]);
上面的代码的输出结果就是:
a[0] = 3
a[1] = 6
a[2] = 8
a[3] = 10
下面我们学习怎么得到数组的长度。
想要得到数组的长度需要调用一个C语言自带的函数sizeof。sizeof函数返回的值是数组所占用的内存大小,它一个unsigned long类型的数据,下面我们通过代码来学习sizeof函数的用法。
#include <stdio.h>int main(){ int a[] = {3, 6, 8, 10, 43, 65}; printf("数组所占用的空间是%lu个字节\n", sizeof(a)); printf("数组的大小是%lu\n", sizeof(a)/sizeof(int)); return 0;}
上面的代码中sizeof(a)返回的是数组a所占的空间的大小,但这并不是数组的长度。由于这是一个int类型的数据,一个int类型的数据占用的空间大小是四个字节。所以要计算数组的大小需要再除以int类型数据所占用的字节大小,所以数组的大小就是sizeof(a)/sizeof(int)。
下面我们来学习二维数组。二维数组的定义形式就是:数组类型 数组名[数值1][数值2];
下面我们通过代码学习二维数组的定义遍历:
#include <stdio.h>int main(){ // 定义一个二维数组并初始化 int a[3][2] = { {1, 2}, {3, 4}, {5, 6} }; // 数组元素的遍历 for (int i = 0; i < 3; i++) for (int j = 0; j < 2; j++) printf("a[%d][%d] = %d\n", i, j, a[i][j]); return 0;
输出结果是:
a[0][0] = 1
a[0][1] = 2
a[1][0] = 3
a[1][1] = 4
a[2][0] = 5
a[2][1] = 6
注意二维数组在定义的同时必须写上大小,这一点是与一维数组不一样的,一位数组可以不写上它的大小,但是必须在定义的同时进行初始化。
二维数组名后面的第一个数值的大小代表它的行数,第二个数值的大小代表它的列数。
总结:
1、数组分为一维数组和二维数组。
2、数组中只能存放一种数据类型,不能多种类型混放,比如说即放int类型的数据又放char类型的数据。
3、数组定义了大小之后就不能再进行大小上的更改了。
4、二维数组的第一个数据是行数,第二个数据是列数。
- 黑马程序员—数组基础
- 黑马程序员——C基础——数组
- 黑马程序员——C语言基础06—数组
- 黑马程序员——C语言基础--数组和字符串
- 黑马程序员——C语言基础---数组、指针
- 黑马程序员——c语言基础:数组和字符串
- 黑马程序员——c语言基础:一维数组
- 黑马程序员——c语言基础:二维数组
- 黑马程序员——ios基础---C语言:进制、数组
- 黑马程序员——C语言基础---数组1
- 黑马程序员——C语言基础---数组2
- 黑马程序员——c语言基础之数组
- 黑马程序员——C基础---二维数组
- 黑马程序员——C基础之一维数组
- 黑马程序员——C基础之二维数组
- 黑马程序员_java基础——数组
- 黑马程序员——javase基础--数组
- 黑马程序员——java基础---数组
- [博弈][DP]DLUTOJ1328: Bricks Game
- wireshark 实用过滤表达式(针对ip、协议、端口、长度和内容)
- MapReduce 要点
- 文章标题
- jQuery 变量数字相加
- 黑马程序员——C基础——数组
- POJ 3278 catch that cow
- 【c++】深赋值与浅赋值
- 4412裸机程序按键控制led灯
- C++的main函数参数
- HDU 1548 A strange lift
- 快速排序_QUICKSORT
- GLIBC中NPTL线程实现代码阅读
- GPG key retrieval failed: [Errno 14] curl#37 - "Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-Cent