从零开始的嵌入式生活:一维数组详解(2)

您所在的位置:网站首页 c语言字符存入数组 从零开始的嵌入式生活:一维数组详解(2)

从零开始的嵌入式生活:一维数组详解(2)

2023-07-13 01:29| 来源: 网络整理| 查看: 265

一、字符数组定义

用来存放字符的数组称为字符数组,例如:

char a[10]; //定义一维字符数组 ,数组里面元素的值是未知的 char b[10]={'c', 'p', 'r', 'o'};//给部分一维字符数组赋值,未赋值数组系统,默认为'\0' char c[5] = {'h', 'e', 'l', 'l', 'o'};

字符数组实际上是一系列字符的集合,也就是字符串(String)。在C语言中,没有专门的字符串变量,没有string类型,通常就用一个字符数组来存放一个字符串。

C语言规定,可以将字符串直接赋值给字符数组,例如:

char a[20] = {"C progarm"};//给一维字符数组赋值字符串 char d[10] = "hello"; //给一维字符数组赋值字符串

数组第 0 个元素为'C',第 1 个元素为' ',第 2 个元素为'p',后面的元素以此类推。

这里需要留意,字符数组只有在定义时才能将整个字符串一次性地赋值给它,一旦定义完了,就只能一个字符一个字符地赋值了。请看下面的例子:

char str[7]; str = "adc123"; //这是错误的 //正确 str[0] = 'a'; str[1] = 'b'; str[2] = 'c'; str[3] = '1'; str[4] = '2'; str[5] = '3'; 二、字符串结束标志

字符串是一系列连续的字符的组合,要想在内存中定位一个字符串,除了要知道它的开头,还要知道它的结尾。找到字符串的开头很容易,知道它的名字(字符数组名或者字符串名)就可以;然而,如何找到字符串的结尾呢?C语言的解决方案有点奇妙,或者说有点奇葩。

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

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

C语言在处理字符串时,会从前往后逐个扫描字符,一旦遇到'\0'就认为到达了字符串的末尾,就结束处理。'\0'至关重要,没有'\0'就意味着永远也到达不了字符串的结尾。

char str[7] = "adc123";

由" "包围的字符串会自动在末尾添加'\0'。例如,"abc123"从表面看起来只包含了 6 个字符,其实不然,C语言会在最后隐式地添加一个'\0',这个过程是在后台默默地进行的,所以我们感受不到。

下面的代码演示了"C program"在内存中的存储情形:

#include int main(void) {     int i;     char str[15] = "C program"; //用双引号括起来字符,就是字符"C" 'C'     for(i=0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3