吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3132|回复: 3
收起左侧

[C&C++ 转载] 【笔记】第六章 数组(C语言)

[复制链接]
sphao 发表于 2017-7-28 09:18
本帖最后由 sphao 于 2017-7-30 18:00 编辑

第六章 数组
特点: 同一数组中的所有元素都属于 同一种数据类型, 数组元素用数组名和相应的下表来确定
方法: 一个数组元素其实就是一个变量(可以称为带下标的变量)
一 一维数组的定义和引用(只有一个下标)
     1. 一维数组定义格式:
     类型名 数组名[常量表达式];
     定义数组有四个注意:
          (1)数组名属于用户自定义标识符, 要遵守标识符命名规则
          (2)定义一维数组时, 数组名后必须用一个方括号将常量表达式括起来, 常量表达式的值表示所定义数组共有多少个元素(数组长度或数组的大小)
          (3)定义数组时方括号中的 表达式不能含有变量. 另外表达式的值必须为正整数
          (4)C语言每个数组在内存中分配空间时是连续分配的
     2. 一维数组元素的引用格式:
          数组名[下标]
     ♠先定义 后使用
     ♠不能整体用数组, 只能单独引用其中的元素, 引用时下标可以是表达式
     ♠数组元素的下标值在0~N-1之间
     3. 一维数组初始化:
     格式:
     类型名 数组名[常量表达式]={初值1, 初值2, ...};
     注意:
     (1)定义一维数组时可以将各元素的初始值依次放在一对{ }中赋给数组
     (2)多则出错, 少则补零
     (3)定义赋初值的个数等于数组长度, 数组长度可以省略
     (4)一个也不给则是随机值
     (5)只能在定义数组的同事用{ }给数组元素整体赋值
二 二维数组的定义个引用(有两个下标)
     1. 二维数组的定义格式:
     类型名 数组名[常量表达式1][常量表达式2];
     注: (1)数组名要遵守用户自定义标识符的命名规则
          (2)定义二维数组第一个方括号常量表示行数, 第二个方括号常量表示列数
          (3)定义数组时方括号中的表达式不能含有变量, 且表达式的值必须是正整数
          (4)在内存中二维数组元素的存放也是连续的, 先行后列原则
     2. 二维数组元素的引用
     数组名[行下标][列下标]
     3, 二维数组的初始化
     方法1: 将初值依次放在一对{ }中, 与一维数组初始化格式相同
     方法2: 定义二维数组同时, 按行初始化每一行初值均用一对{ }括起, 采用嵌套{ }
     注意: 定义二维数组的同时给数组初始化,可以省略行数,但列数不能省略
三 字符数组
     C语言中没有字符串变量,那么如何存储
          字符数组     字符型指针
     1. 字符数组的初始化
     与其它类型数组的初始化方式一样,只是其初始值是字符
     2, 字符串
     因为字符串最后都有一个字符串结束符('\0'), 所以用字符数组来存放字符串时一定要有一个元素存放结束符'\0'
     字符串给字符数组初始化的方法
     (1)char a[5]="abcd";
     (2)char a[5]={"abcd"};
     (3)char a[5]={'a','b','c','d', '\0'};
     ♠双引号能省略{ }
     ♠双引号自动加'\0', 长度加1
四 数组的使用
1. 一维数组的使用
     结构: 找配对 找控制 标语句
     过程: 画图
2. 二维数组的使用
     双重for循环
3. 字符串使用
(1)字符串存储(赋值)四种方法
     方法1: scanf(); 键盘输入
          scanf("%s", a);
          scanf("%s", &a);     非法, 数组名本身为地址
     注: 用%s格式输入时, 遇到空格符或回车符则自动结束输入
               printf(); 输出
     注: 输出时则从当前地址开始, 直到遇到结束符
     方法2: gets(); 键盘输入
     格式: #include<stdio.h>
               gets(字符数组);
     功能: 读取一个字符串赋给字符数组
     注:
     (1)该函数输入字符时, 只有遇到回车符系统才结束读取字符
     (2)不论是用%s还是gets( )在作为输入时, 均不需要输入双引号, 若输入时用了双引号则双引号也作为字符串的有效字符
               puts(); 输出
          格式: #include<stdio.h>
                    puts(字符数组或字符串常量);
          功能: 在屏幕上输出字符数组中的字符
          注: 用该函数输出与用%s格式输出一样, 只是该函数将'\0'转成'\n'输出
     方法3: 字符串初始化
方法4: strcpy();
                    strcpy(a, "abcd");
(2)字符串函数(处理)
     第一个函数: strcat()
     格式: #include<string.h>
               strcat(字符数组1, 字符数组2)
     功能: 连接
      1.png
     第二个函数: strcpy()
     格式: #include<string.h>
               strcpy(字符数组1, 字符数组2)
     功能: 将字符数组2中的字符串替换到字符数组1中, 函数值为字符数组1的首地址
      2.png
     第三个函数: strcmp()
     格式: #include<string.h>
               strcmp(字符数组1, 字符数组2)
     功能: 函数返回 相同位置不同字符的ASCII码差值
      3.png
     注: 不能用关系运算符直接进行字符串大小或字符串数组大小的比较
第四个函数: strlen()
     格式: #include<string.h>
               strlen(字符数组)
     功能: 求出字符数组的实际长度, 不包括结束符
      4.png

【笔记】第七章 函数与预编译(C语言)
http://www.52pojie.cn/thread-629758-1-1.html

【笔记】第六章 数组(C语言)
http://www.52pojie.cn/thread-629287-1-1.html
【笔记】第五章 循环结构(C语言)
http://www.52pojie.cn/thread-628823-1-1.html
【笔记】第四章 选择结构(C语言)
http://www.52pojie.cn/thread-627932-1-1.html
【笔记】第三章 顺序结构(C语言)
http://www.52pojie.cn/thread-627411-1-1.html
【笔记】第二章 C语言组成及数据
http://www.52pojie.cn/thread-627006-1-1.html
【笔记】第一章 C语言基础知识
http://www.52pojie.cn/thread-626978-1-1.html












免费评分

参与人数 2热心值 +2 收起 理由
cy798 + 1 我很赞同!
KaQqi + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

来一发呗 发表于 2017-7-28 09:43 来自手机
有前5章沒,你可以把前五章附上
kukuyu1314 发表于 2017-7-28 10:13
飞枫亦矢 发表于 2017-7-28 14:13
cjj15697886981 发表于 2017-7-28 14:52 来自手机
以前大一的时候没听课  现在看不懂
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-27 02:17

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表