C 语言入门---第六章 C语言数组
数组就是一些列具有相同类型的数据的集合,这些数据在内存中一次挨着存放,彼此之间没有缝隙。
我们可以将二维数组看作一个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语言数组的更多相关文章
- C 语言入门---第十一章---C语言重要知识点补充
====C语言typedef 的用法==== 1. C语言允许为一个数据类型起一个新的别名,就像给人起绰号一样. typedef OldName newName; typedef 和 #define ...
- C语言入门---第七章 C语言函数
函数就是一段封装好的,可以重复使用的代码,它使得我们的程序更加模块化,不需要编写大量重复的代码.函数可以提前保存起来,并给它起一个独一无二的名字,只要知道它的名字就能使用这段代码.函数还可以接收数据, ...
- 01 C语言程序设计--01 C语言基础--第1章 C语言概述&第2章 GCC和GDB
走进嵌入式开发的世界,企业级项目课程让你达到企业嵌入式应用开发要求.名师在线答疑,解决疑难.科学评测体系,系统评估学习.核心项目实........ 30 门课程 241小时12分钟 824 人学习 学 ...
- Go语言入门系列(六)之再探函数
Go语言入门系列前面的文章: Go语言入门系列(三)之数组和切片 Go语言入门系列(四)之map的使用 Go语言入门系列(五)之指针和结构体的使用 在Go语言入门系列(二)之基础语法总结这篇文章中已经 ...
- C语言入门(1)——C语言概述
1.程序与编程语言 我们使用计算机离不开程序,程序告诉计算机应该如何运行.程序(Program)是一个精确说明如何进行计算的指令序列.这里的计算可以是数学运算,比如通过一些数学公式求解,也可以是符号运 ...
- C语言编程入门之--第六章C语言控制语句
导读:本章带读者理解什么是控制语句,然后逐个讲解C语言常用的控制语句,含有控制语句的代码量多起来后就要注意写代码的风格了,本章末节都是练习题,大量的练习才能掌握好控制语句的使用. 6.1 什么是控制语 ...
- 网易云课堂_程序设计入门-C语言_第六章:数组_2鞍点
2 鞍点(5分) 题目内容: 给定一个n*n矩阵A.矩阵A的鞍点是一个位置(i,j),在该位置上的元素是第i行上的最大数,第j列上的最小数.一个矩阵A也可能没有鞍点. 你的任务是找出A的鞍点. 输入格 ...
- 网易云课堂_程序设计入门-C语言_第六章:数组_1多项式加法
1 多项式加法(5分) 题目内容: 一个多项式可以表达为x的各次幂与系数乘积的和,比如: 现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出. 程序要处理的 ...
- C语言学习第六章
今天开始尝试改变! 今天要学习函数,一个C语言中的重要组成部分. 首先先聊聊为什么要使用函数?随着学习的深入很多人会发现某段的代码重复使用的几率很大,而如果用一次写一次的话很明显的效率就会比较低,如果 ...
随机推荐
- HDFS的常用命令
一.常用命令 二.其他命令
- JS中的提升(即变量和函数声明移动到代码顶部)
先看代码(第一个代码片段): console.log(a); var a = 1; 如果你认为这是一段不合法的代码,在调用console.log()的时候会输出undefined,你完全正确.但是如果 ...
- 数据结构--Java语言描述
本篇文章是为了记录自己在学习数据结构时的笔记,会对常见的数据结构做基本的介绍以及使用Java语言进行实现.包括 动态数组 栈 队列 链表 二分搜索树 优先队列和堆 线段树 Trie树 并查集 AVL树 ...
- Bugku-CTF社工篇之社工进阶
- Euler Sums系列(二)
\[\Large\sum_{n=0}^\infty \frac{H_{2n+1}}{(2n+1)^2}=\frac{21}{16}\zeta(3)\] \(\Large\mathbf{Proof:}\ ...
- same-security-traffic
关于Inter-interface和intra-interface: 要允许具有相同安全级别的接口之间的通信,或允许流量进入和退出同一接口,请在全局配置模式下使用same-security-traff ...
- mysql数据库关系表设计原则
三范式https://blog.csdn.net/qq_36432666/article/details/78934073 https://kb.cnblogs.com/page/138526/ ht ...
- lc 0222
目录 ✅ 191. 位1的个数 描述 解答 cpp py ✅ 107. 二叉树的层次遍历 II 描述 解答 c todo 观赏 0222 py ✅ 806. 写字符串需要的行数 描述 解答 cpp j ...
- 结对编程任意Android App Demo
一.产品说明 1.编写目的:用于获取百度图标. 2.情景设计:本产品用于展示图标.随着21世纪各类元素的普及,大部分的人群想下载各类网站的图标,也为了方便用户更便捷的下载而开发的. 3.Demo主要实 ...
- 【PAT甲级】1041 Be Unique (20 分)(多重集)
题意: 输入一个正整数N(<=1e5),接下来输入N个正整数.输出第一个独特的数(N个数中没有第二个和他相等的),如果没有这样的数就输出"None". AAAAAccepte ...