教程学院
图像设计 多媒体类 机械制图 办公软件 操作系统 系统编程 网站编程 网页制作 数据库类 网络路由 网络工程 网络安全 考试认证
firefox火狐浏览器下载
酷网学院
CAD
AutoCad Cam350 ProEngineer GCcam MATLAB Unigraphics SolidWorks CAXA Solid3000 Cimatron EdgeCAM
系统
安全 防火墙 病毒 WinXP Win2003 Vista
数据库
编程
网络
精彩图库
  当前位置: 库库中文网 · 系统编程教程 · C语言 · C语言基础教程

一维数组

学院最新推荐文章
教程推荐
『一维数组』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
点击数: 更新时间:2005-6-7 


数组是一个由若干同类型变量组成的集合,引用这些变量时可用同一名字。数组均由连续的存储单元组成,最低地址对应于数组的第一个元素,最高地址对应于最后一个元素,数组可以是一维的,也可以是多维的。
一维数组的一般说明形式如下:
type-specifiervar_name[size];
在C语言中,数组必须显示地说明,以便编译程序为它们分配内存空间。在上式中,类型说明符指明数组的类型,也就是数组中每一个元素个数,一维数组的总字节数可按下式计算:
sizeof(类型)*数组长度=总字节数
[例5-1]将数字0到9装入一个整型数组。
main()
{
int x[10];/*定义包含10个整型数的数组,引用为x[0],x[1]...x[9]*/
int t;
for(t=0;t<10;++t)x[t]=t;
}
C语言并不检验数组边界,因此,数组的两端都有可能越界而使其它变量的数组甚至程序代码被破坏。在需要的时候,数组的边界检验便是程序员的职责。例如,当使用gets()接收字符输入时,必须确认字符数组的长度足以存放最长的字符串。
一维数组在本质上是由同类数据构成的表,例如,对下列数组a:
char a[7]
图5-1说明了数组a在内存中的情形,假定起始地址为1000。

5.1.1 向函数传递一维数组
将一维数组传递给函数时,把数组名作为参数直接调用函数即可,无需任何下标。这样,
数组的第一个元素的地址将传递给该函数。C语言并不是将整个数组作为实参来传递,而是用
指针来代替它。例如,下面的程序将数组i的第一个元素的地址传递给函数func1( )。
main( )
{
int i[10];
func1(i); /*函数调用,实参是数组名* /
.
.
.
}
函数若要接收一维数组的传递,则可以用下面的二种方法之一来说明形式参数; 1) 有界
数组;2) 无界数组。例如,函数func1 ( )要接收数组i可如下说明:
f u n c 1 ( s t r )
char str[10]; /* 有界数组,数组的下标只能小于或等于传递数组的大小。* /
{
.
.
.
}
也可说明为:
f u n c 1 ( s t r )
char str[ ]; / * 无界数组* /
{
.
.
.
}
这二种说明方法的效果是等价的,它们都通知编译程序建立一个字符指针。第一种说明
使用的是标准的数组说明;后一种说明使用了改进型的数组说明,它只是说明函数将要接收
一个具有一定长度的整型数组。细想就会发现,就函数而言,数组究竟有多长并无关紧要,
因为C语言并不进行数组的边界检验。事实上,就编译程序而言,下面的说明也是可行的。
func1 (str);
int str[32];
{
.
.
.
}
因为编译程序只是产生代码使函数func1( )接收一个指针,并非真正产生一个包含3 2个元
素的数组。
5.1.2 字符串使用的一维数组
显然,一维数组的最普通的用法是作为字符串。在C语言中,字符串被定义为一个以空字
符终结的字符数组。空字符以‘ \ 0’来标识,它通常是不显示的。因此,在说明字符数组时,
必须比它要存放的最长字符串多一个字符。例如,假如要定义一个存放长度为1 0的字符串的
数组s,可以写成:
char s[11];
这样就给字符串末尾的空字符保留了空间。
尽管C语言并不把字符串定义为一种数据类型,但却允许使用字符串常量。字符串常量是
由双引号括起来的字符表。例如,下面两个短语均为字符串常量:
"hello there"
"this is a test"
不必向字符串的末尾加空字符, C编译程序会自动完成这一工作。
C语言支持多串操作函数,最常用的有:
名字功能
strcpy(s1 s2) 将s 2拷贝到s 1
strcat(s1 s2) 将s 2连接到s 1的末尾
s t r l e n ( s 1 ) 返回s 1的长度
s t r c m p ( s 1,s 2 ) 若s 1与s 2相等,返回值为0
若s 1 < s 2,返回值小于0
若s 1 > s 2,返回值大于0
例5 - 2说明了这些函数的用法。
[例5 - 2 ]
# include <stdio.h>
main ( )
{

[1] [2] 下一页  

作者:无 来源:无
】【关闭窗口
·上页:
·下页: 没有了
相关文章
     系统编程教程 - C语言基础教程
普通教程新手必看
普通教程新手必看
普通教程趣味程序导学C语言
普通教程用Win-TC编译与用TC2.0编译地差
普通教程C语言学习初次体会
普通教程C语言漫谈
普通教程Linux下面怎么样进行C语言编制程
普通教程怎么样在一个程序后面运行另一个
普通教程新手问与答(怎么样产生random数
普通教程C语言程序设计(第9章 实用编制程
普通教程C语言程序设计(第9章 实用编制程
普通教程C语言程序设计(第8章 输入输出和
精彩图片汇集
advertisement
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 返回顶部
网站文本地图
版权所有:库库中文 2005-2007 欢迎各种媒体转载我们的原创作品[转载请注明出处]
copyright © 2005-2008 www.QQGB.com online services. all rights reserved. 蜀ICP备05015578
Template designed by Virus. Optimized for 1024x768 to Firefox,Opera and MS-IE6. Site powered by EQL.
红盾
热爱电脑,热爱生活
拥有电脑,拥有生命
让我们享受拥有电脑的时光