C语言中字符串和字符串的结束标志

一 概述

在C语言中,是将字符串作为字符数组来处理的,也就是使用一个一维字符数组来存放字符串。字符串中的字符是逐个存放在数组元素中的。

我们在讨论字符串长度的时候实际上讨论的是字符串的实际长度,而非对应字符数组的长度。如,定义一个字符数组长度为100,实际有效的字符只有40个。那我们如何通过实际代码知道位置字符串的长度呢。在C语言中规定了一个"字符串结束的标志"。即以字符"\0"作为结束标志。如果字符数组存在若干字符,前面的8个字符都不是空字符"\0",而第9个字符为空字符"\0",则认为数组中字符串的有效长度为8。

C系统中使用字符数组存储字符串的常量的时候会自动加一个'\0'作为结束符。

二 说明

'\0'代表ASCII码为0的字符,从ASCII码表中可以查到。ASCII码为0的字符并不是一个可以显示的字符,而是一个"空操作符",即它什么也不做,只是用来作为字符串结束的标志不会产生附加的操作或增加有效字符,只是达到一个辨别的标志。

三 系统识别结束的原理

例子:printf("How do you do? \n")

实际上,在向内存中存储时,系统自动在最后一个字符'\n'的后面加上一个'\0',作为字符串结束的标志。而在执行printf函数时,没输出一个字符检查一次当前字符是否为'\0',如果是'\0'就会停止输出。

四 字符串常量初始化字符数组

如 char c[] = {"I am happy"}; 此时我们可以省略花括号,直接写成:char c[] = "I am happy"; 后者直接使用字符串常量初始化字符数组。

 

 

 

 

猜你喜欢

转载自blog.csdn.net/calm_encode/article/details/106854358