Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  C语言  >  正文 C语言一维数组入门教程

C语言一维数组入门教程

发布时间:2018-10-08   编辑:www.jquerycn.cn
jquery中文网为您提供C语言一维数组入门教程等资源,欢迎您收藏本站,我们将为您提供最新的C语言一维数组入门教程资源
本文章来简单的介绍入门级的c语言入门教程,下面我来介绍C语言一维数组的使用方法,包括有一维数组,数组的引,数组的遍历用,数组的初始化等。

一、一维数组

1、定义一个一维数组:
(1)格式:存储类别   类型标识符  数组名标识符[常量表达式]
(2)例子:static int a[10]
(3)注意:定义数组时数组的元素必须是常量,不能是变量,例如int n=3;int a[n] 这是不对的。

2、对数组的引用:

(1)引用形式:数组名[下标] 例如 a[2]
 ( 2) 注意数组的下标是由0开始,如a[3] 表示有三个元素 分别是a[0],a[1] ,a[2] .如果你用a[3]访问第三个元素是错误的。
(3)对数组的遍历:如果要一次访问数组的全部元素,则只能使用遍历的形式,如下

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy9919')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy9919>

for(int i=0;i<5;i ){
printf(“d%n”,a[i]);
}

(4)怎么输入数组?
 注意不能整体一下子输入数组,如果你想scanf(“%d,”,a);其中a是数组,这样只能够输入a[0],因为数组名代表的就是数组的首地址,它与scanf(“%d,”,&a[0]);等价。如果想全部输入,则需要使用循环的方式:
例如:

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy5289')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy5289>for(int i=0;i<5;i ){
scanf(“d%n”,&a[i]);
}

3、数组的存储结构:
(1)有一个整型数组a,里面有4个元素,知道了第一个元素的内存地址是1000,怎么求出第三个元素的内存地址 ?
  解:c语言为数组开辟了连续的存储单元,每个元素都会占据一样的字节数,由于整型一般是占据2个字节,所以每个元素都会占据2个字节的内存空间,数组的其实地址是1000,所以第二个元素的地址是1002,第三个是1004,第四个是1006.
根据这个原理,可以得出一个公式:
数组的元素地址 = 数组的起始地址 元素下标 x  sizeof(数组类型)
 

数组的初始化:

解:初始化的方式有:int a[5] = {0,1} 或者 nt a[5] = {0,1,5,4,3}

注意:如果元素的长度不够,系统会自动为后面的元素补0,就像第一个a[5] = {0,1},就相当于a[5] = {0,1,0,0,0}。千万不要多了,这样会导致溢出,例如a[5] = {0,1,5,4,3,0,5}就是错误的行为。

例如:

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy4525')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy4525>

int a[10];           说明整型数组a,有10个元素。

float b[10],c[20];   说明实型数组b,有10个元素,实型数组c,有20个元素。

char ch[20];         说明字符数组ch,有20个元素。

利用数据进行排序(起泡排序)

从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比较后,最大的数已放在最后,第二遍只需考虑(N-1)个数,以此类推直到第(N-1)遍比较后就可以完成排序。

源程序如下:

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy8265')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy8265>

#define N 10

#include"stdio.h"

main()

{

int a[N],i,j,temp;

printf("please input %d numbersn",N);

for(i=0;i<N;i )

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

for(i=0;i<N-1;i )

for(j=0;j<N-1-i;j )

{

if(a[j]>a[j 1])

{

temp=a[j];

a[j]=a[j 1];

a[j 1]=temp;

}

}

printf("the array after sort:n");

for(i=0;i<N;i )

printf("]",a[i]);

}

您可能感兴趣的文章:
php入门教程(索引)
php 判断数组维数的例子(一维,二维或多维)
r和python数据分析的区别有哪些
为什么运维用python
Go语言发展历史、核心、特性及学习路线
php难吗
python如何减小维度
C语言一维数组入门教程
Go语言学习3----Go语言特色
数组(一维数组的使用)

[关闭]