• 【C语言入门教程】4.2 二维数组


    C 语言允许使用多维数组,即使用多组小标的数组,二维数组是最常用的多维数组。多维数组在内存中存放数据的顺序与一维数组相同,使用连续的存储单元。

    4.2.1 二维数组的一般形式

    二维数组的一般声明形式为:

    数组类型 数组名[长度1][长度2];

    数组的总长度等于 长度1 与 长度2 的乘积。如下列所示:

    char c[2][5] = { 63, 64, 65, 66 ,67 ,68, 69, 70, 71, 72 }; // 声明二维数组并初始化,数组总长度为 10

    该语句声明了一个拥有 10 个存储单元的字符型数组,在内存中的位置如下图所示。在实际应用中,可将二维数组理解为一个表格,第一组小标为表格的行数,第二组小标为表格的列数。每组下标以 0 开始,最后一个元素的下标数值为长度减1。

    注意:引用数组边界之外的元素将造成程序运行错误。数组初始值列表中提供的初始值多于数组元素数量,使用变量作为数组长度声明数组将引起编译错误。

    4.2.2 二维字符串数组

    二维字符串数组可以看作是多个一维字符串数组,第一组下标长度即存放的字符串个数,第二组下标长度是可存放的最长的字符串长度加 1。当使用标准函数库的字符串函数处理二维字符串数组时,必须给出第一组下标,每次只能处理其中一个字符串。如下例所示:

    char buddy[3][200];
    int i;
    printf("请输入联系人姓名:");
    scanf("%50s", buddy[0]);			// 从键盘输入获取长度为 50 的字符串,并保存到数组第 1 行
    
    printf("
    请输入联系人电话:");		// 从键盘输入获取长度为 30 的字符串,并保存到数组第 2 行
    scanf("%30s," buddy[1]);
    
    prinft("
    请输入联系人地址:");
    scanf("%199s", buddy[2]);			// 从键盘输入获取长度为 199 的字符串,并保存到数组第 3 行
    
    printf("
    您输入的信息是:
    ");
    for (i = 0; i < 3; i++)
    {
    	printf("%s", buddy[i]);			// 依次输出数组的每一行
    }

    示例中声明了一个长度为 600 的二维字符串数组,该数组最后一组下标的长度为 200,所以能存放的字符串长度最长为 199。使用scanf()printf() 函数处理字符串数组时,要省略掉最后一组下标,这样能得到所要处理的字符串的首地址,字符串处理函数会在遇到字符串结束符是停止处理,忽略字符串结束符后的存储单元。scanf()函数会为输入的字符串加上字符串结束符。当输入的字符串长度超过格式控制符所指定的长度时,scanf()函数将自动根据指定长度裁剪。但如果格式控制符没有指定长度,则会窜入下一行,造成逻辑错误。

  • 相关阅读:
    服务器 空间
    android 手动打包
    sql server 2000 完全卸载 2
    apk 优化
    asp.net 画 数据图表
    java 运行 bat win linux
    vb 生成 批处理
    国内平台
    委托
    observer 观察者模式
  • 原文地址:https://www.cnblogs.com/52php/p/5681241.html
Copyright © 2020-2023  润新知