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

我们可以将二维数组看作一个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. C语言:判断字符串是否为回文,-函数fun将单向链表结点数据域为偶数的值累加起来。-用函数指针指向要调用的函数,并进行调用。

    //函数fun功能:用函数指针指向要调用的函数,并进行调用. #include <stdio.h> double f1(double x) { return x*x; } double f ...

  2. C# MD5加密-MD5Helper

    原文地址:https://ken.io/note/csharp-md5 一.前言 MD5说明http://zh.wikipedia.org/wiki/MD5 .NET MD5类 官方文档&示例 ...

  3. python3下pygame显示中文的设置

    1.先看代码: import pygame from pygame.locals import * def main(): pygame.init() screen = pygame.display. ...

  4. 树莓派Raspberry实践笔记—显示分辨率配置

    转载:http://www.cnblogs.com/atsats/p/6607886.html 如果未接显示设备,使用VNC登录后,显示分辨率很小,应该是480p,导致使用很不方便. 这里通过修改/b ...

  5. bootstrap标记说明

    <span class="caret"> 这就是 一个倒三角

  6. RAID0---RAID10(重点)

    二.基本原理 RAID ( Redundant Array of Independent Disks )又叫独立磁盘冗余阵列,通常简称为磁盘阵列. RAID是一种把多块独立的硬盘(物理硬盘)按不同方式 ...

  7. JavaScript - 运行机制,作用域,作用域链(Scope chain)

    参考 https://www.jianshu.com/p/3b5f0cb59344 https://jingyan.baidu.com/article/4f34706e18745be386b56d46 ...

  8. Coursera 国内无法登陆问题

    参考: 1.Coursera登不上去 | 知乎 2.Win10如何修改hosts | 百度经验 浏览器在访问https://www.coursera.org时,出现正在等待 d3njjcbhbojbo ...

  9. ubuntu-18.04 修改用户名密码

    1. 开放root登录 设置root密码 $ sudo passwd root 切换到root 用户 $ sudo -i 修改/etc/pam.d/gdm-autologin $ vim /etc/p ...

  10. windows安装ActiveMQ以及点对点以及发布订阅

    一.MQ产品的分类 1.RabbitMQ 是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它变的非常重量级,更适合于企业级 ...