C基础(三)数组

书目《C程序设计(第三版)

  • (一)定义
    1、数组是具有相同数据类型的一组变量,通过数组名+下标(从零开始)进行访问其中成员,数组在内存中是连续存储的;
    2、构造类型(数组类型、结构体类型、共用体类型)均为连续存储的。

  • (二)一维数组
    1、一维数组的定义方式为:类型说明符 数组名[常量表达式];
    2、可以在定义数组时,对数组元素(全部或者其中一部分)赋初值,对全部元素赋初值时,由于数据的个数已经确定,可以不指定数组长度。

  • (三)二维数组
    1、二维数组的定义方式为:类型说明符 数组名[常量表达式][常量表达式];
    2、可以在定义数组时,分给数组元素(全部或者每行的一部分——此时未被赋值的元素自动填0)赋初值,也可以将所有数据写在一个花括号内,按数组排列的顺序对各元素赋初值;
    3、对全部元素都赋初值时,可以不指定第一维的长度(在内存中,数组是按行存放的,因此必须指定列数——即一行中包含几个元素),系统会根据总个数和第二维的长度算出第一维的长度。

  • (四)字符数组
    1、对字符数组进行初始化时,如果字符个数大于数组长度,会产生语法错误,如果字符个数小于数组长度,只将这些字符赋给数组中前面的元素,其余元素自动定为空字符(‘\0’);
    2、在C语言中,是将字符串作为字符数组来处理的,空字符(‘\0’)是字符串结束标志(在输出字符串时,碰上空字符即输出结束),字符串常量会自动添加一个空字符(‘\0’)在末尾;
    3、空字符(‘\0’)不会被输出到屏幕上,但是在数组中会占用一个字符的空间,这点很重要
    4、常用字符串处理函数:
    puts(字符数组):将一个字符串输出到终端
    gets(字符数组):从终端输入一个字符串到字符数组,并得到字符数组的起始地址
    strcat(字符数组1,字符数组2):字符串连接
    strcpy(字符数组1,字符数组2)、strncpy(字符数组1,字符数组2):字符串复制
    strcmp(字符数组1,字符数组2):字符串比较
    strlen(字符数组):求字符串长度——不包括空字符(‘\0’)
    strlwr(字符数组):字符串小写
    strupr(字符数组):字符串大写

  • (五)数组作为函数参数
    1、数组元素可以作为函数实参,用法与变量相同;
    2、数组名也可以作为实参和形参,传递的是数组首元素的地址,形参数组和实参数组共占一段内存单元,形参数组可以不指定数组大小,形参应当用数组名或者指针变量;
    3、将数组传递给函数时,数组名就是引用,所以如果函数声明时,如fuc(int &[])这样的会报错(因为不能创建引用数组,事实上,对引用的“二次利用”都不是不被允许的,所以不能创建引用的引用,不能创建指向引用的指针,也不能创建引用数组);
    4、多维数组名用作形参时,可以省略第一维的大小说明

  • (六)注意事项
    1、要警惕下标的变化,确保其变化范围在指定边界内;
    2、使用字符数组时,一定要给末尾的空字符(‘\0’)留出空间;
    3、数组不能作为函数的返回值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值