数组就是一些列具有相同类型的数据的集合,这些数据在内存中一次挨着存放,彼此之间没有缝隙。

我们可以将二维数组看作一个Excel表格,有行有列,length1 表示行数,length2 表示列数,要在二维数组中定位某个元素,必须同时指明行和列。

  二维数组在概念上是二维的,但在内存中是连续存放的,换句话说,二维数组的各个元素是相互挨着的,彼此之间没有缝隙。在线性内存中存放二维数组有两种方式:

  1. 按行排列,放完一行之后再放入第二行

  2. 按列排列,放完一列之后再放入第二列。

=================字符串结束标志(划重点)==========

字符串是一系列连续的字符的组合,要想在内存中定位一个字符串,除了要知道它的开头,还要知道它的结尾。找到字符串的开头很容易,知道它的名字(字符数组名或者字符串名)就可以了,然而如何找到字符串的结尾呢?

  在C语言中,字符串总是以‘\0’作为结尾,所以‘\0’也被称为字符串结束标志,或者字符串结束符。

‘\0’ 是ASCII码表中的第0个字符,英文称为NUL,中文为:空字符。该字符既不能显示,也没有控制功能,输出该字符不会有任何效果,它在C语言中唯一的作用就是作为字符串结束标志。

  在函数内部定义的变量、数组、结构体、共用体等都成为局部数据。在很多编译器下,局部数据的初始值都是随机的、无意义的,而不是我们通常认为的“零”值。这一点费非常重要。

  char str[30] = { 0 };     // 将所有元素都初始化为 0 ,或者说是'\0';

  // 如果只初始化部分数组元素,那么剩余的数组元素也会自动初始化为“零”值,所以我们只需要将str 的 第 0 个元素 赋值为 0 ,剩下的而元素就都是0 了。

=====字符串长度====

  在C语言中,我们使用 string.h 投文件中的strlen()函数来求字符串的长度,例如:

  long len = strlen(strname);

注意: scanf() 在读取数据时需要的是数据的地址,这一点是恒定不变的,对于int char float  等类型的变量都要在前边添加 & 以获取他们的地址。但是在字符串或者数组名字使用过程中,一般都会转换为地址,再添加& 就是多此一举,甚至会导致错误。

  就目前学习到的知识而言,int char float 等类型的变量用于 scanf() 时都要在前面添加& ,而数组或者字符串用于scanf() 时不用添加& ,他们本身就会转换为地址。

====C语言字符串处理函数====

C语言提供了丰富的字符串处理函数,可以对字符串进行输入、输出、合并、修改、比较、转换、复制、搜索等操作,使用这些现成的函数可以大大减轻我们的编程负担。

  string.h 是一个专门处理字符串的投文件,它包含了很多字符串处理函数。

  字符串连接函数 strcat() : 是string  catenate 的缩写,意思是把连哥哥字符串连接在一起。语法格式为: strcat(arrayName1,arrayName2);

  strcat() 将把arrayName2 连接到arrayName1 后面,并删除原来arrayName1 最后的结束标志'\0'.这意味着,arrayName1必须足够长,要能够同时容纳arrayName1 和arrayName2 ,否则就会越界(超出范围)。

  strcat() 的返回值是arrayName1 的地址。

  ===字符串复制函数strcpy()====

=  ===字符串比较函数strcmp()====

  字符本身没有大小之分,strcmp()以各个字符对应的ASCII码值进行比较。strcmp() 从两个字符串的第0个字符开始比较,如果他们相等,就继续比较下一个字符,知道遇见不用的字符,或者到字符串的末尾。

  如果两个字符串相同,则返回0;若arrayName1 大于arrayName2,则返回大于0的值,若小于,则返回小于0 的值。

==== C语言对数组元素进行排序(冒泡排序法)===

  对数组元素进行排序的方法有很多种,比如:冒泡排序法、归并排序、选择排序、插入排序、快速排序等,其中最基本的就是冒泡排序法。

  代码实现:

  #include<stdio.h>

  int main(){

    int nums[10] = {4, 5, 2,10,7,1,8,3,6,9};

    int i,j,temp;

    // 冒泡排序法:进行 n - 1比较

    ......

    }

      

  }

C 语言入门---第六章 C语言数组的更多相关文章

  1. C 语言入门---第十一章---C语言重要知识点补充

    ====C语言typedef 的用法==== 1. C语言允许为一个数据类型起一个新的别名,就像给人起绰号一样. typedef OldName newName; typedef 和 #define ...

  2. C语言入门---第七章 C语言函数

    函数就是一段封装好的,可以重复使用的代码,它使得我们的程序更加模块化,不需要编写大量重复的代码.函数可以提前保存起来,并给它起一个独一无二的名字,只要知道它的名字就能使用这段代码.函数还可以接收数据, ...

  3. 01 C语言程序设计--01 C语言基础--第1章 C语言概述&第2章 GCC和GDB

    走进嵌入式开发的世界,企业级项目课程让你达到企业嵌入式应用开发要求.名师在线答疑,解决疑难.科学评测体系,系统评估学习.核心项目实........ 30 门课程 241小时12分钟 824 人学习 学 ...

  4. Go语言入门系列(六)之再探函数

    Go语言入门系列前面的文章: Go语言入门系列(三)之数组和切片 Go语言入门系列(四)之map的使用 Go语言入门系列(五)之指针和结构体的使用 在Go语言入门系列(二)之基础语法总结这篇文章中已经 ...

  5. C语言入门(1)——C语言概述

    1.程序与编程语言 我们使用计算机离不开程序,程序告诉计算机应该如何运行.程序(Program)是一个精确说明如何进行计算的指令序列.这里的计算可以是数学运算,比如通过一些数学公式求解,也可以是符号运 ...

  6. C语言编程入门之--第六章C语言控制语句

    导读:本章带读者理解什么是控制语句,然后逐个讲解C语言常用的控制语句,含有控制语句的代码量多起来后就要注意写代码的风格了,本章末节都是练习题,大量的练习才能掌握好控制语句的使用. 6.1 什么是控制语 ...

  7. 网易云课堂_程序设计入门-C语言_第六章:数组_2鞍点

    2 鞍点(5分) 题目内容: 给定一个n*n矩阵A.矩阵A的鞍点是一个位置(i,j),在该位置上的元素是第i行上的最大数,第j列上的最小数.一个矩阵A也可能没有鞍点. 你的任务是找出A的鞍点. 输入格 ...

  8. 网易云课堂_程序设计入门-C语言_第六章:数组_1多项式加法

    1 多项式加法(5分) 题目内容: 一个多项式可以表达为x的各次幂与系数乘积的和,比如: 现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出. 程序要处理的 ...

  9. C语言学习第六章

    今天开始尝试改变! 今天要学习函数,一个C语言中的重要组成部分. 首先先聊聊为什么要使用函数?随着学习的深入很多人会发现某段的代码重复使用的几率很大,而如果用一次写一次的话很明显的效率就会比较低,如果 ...

随机推荐

  1. 「CF858F」 Wizard's Tour

    传送门 Luogu 解题思路 首先对于树的情况,我们很显然有一种贪心策略: 对于每一个节点先匹配子树,然后在还可以匹配的儿子间尽可能匹配,要是多出来一个就往上匹配. 推广到图的情况... 我们在图的生 ...

  2. 01 认识python

    python介绍 python的创始⼈为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决⼼ 开发⼀个新的脚本解释程序,作为ABC语 ...

  3. 【代码学习】PYTHON字符串的常见操作

    一.字符串运算符 下表实例变量 a 值为字符串 "Hello",b 变量值为 "Python": 操作符 描述 实例 + 字符串连接 >>>a ...

  4. 模块学习-shutil

    高级的 文件.文件夹.压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length]) 将文件内容拷贝到另一个文件中,可以部分内容 shutil.copyfile(s ...

  5. 到底是哪个“O”管理内部人员风险?

    导读 俗话说,家和万事兴.与之相对的,家不睦则必自败.同理,如果缺乏明确的领导,内部人员风险管理项目或内部人威胁项目 (ITP) 也将走向失败. 俗话说,家和万事兴.与之相对的,家不睦则必自败.同理, ...

  6. Educational Codeforces Round 77 (Rated for Div. 2) - D. A Game with Traps(二分)

    题意:$m$个士兵,每个士兵都有一个灵敏度$a[i]$,起点为$0$,终点为$n + 1$,在路上有$k$个陷阱,每个陷阱有三个属性$l[i],r[i],d[i]$,$l[i]$表示陷阱的位置,如果你 ...

  7. N-tier architecture N层架构 (转)

    下面的内容既有我的理解,也有翻译的内容,翻译的书名为: <<Expert C# 2008 Business Objects >>http://www.douban.com/su ...

  8. arcPy实现要素图层数据的复制(选择特定字段填写属性)

    >>> import arcpy>>> fc=r"D:\楚雄州数据\testdata.gdb">>> editor=arcpy ...

  9. Python 基础之面向对象之装饰器@property

    一.定义 装饰器@property可以把方法变成属性使用作用: 控制类内成员的获取 设置 删除获取 @property设置 @自定义名.setter删除 @自定义名.deleter 二.具体实现 1. ...

  10. 设计模式课程 设计模式精讲 3-8 迪米法特原则讲解及Coding

    1 课程讲解 1.1 定义 1.2 特质 1.3 重点 2 代码演练 2.1 反例 2.2 正例 1 课程讲解 1.1 定义 定义:一个对象应该对其他对象保持最少的了解.又叫最少知道原则. 1.2 特 ...