位置:七考网 > 教育 > 学习 > 字符串常量及字符串变量是什么意思  正文

字符串常量及字符串变量是什么意思

2020-03-05 09:05:13来源:华清远见成都中心

字符常量是由一对单撇号括起来的单个字符,如 ‘a’、‘C’、‘?’,‘$’。在C语言中,除了字符常量还有字符串常量以及字符串变量,先来讲一下字符串常量的个人理解:

字符串常量和字符串变量

(1)常量本质在于不可更改,而字符串常量是就是一对双引号括起来的字符序列常量。例如“hello word”C语言中规定,在每一个字符串常量的结尾,系统都会自动加一个字符’\0’作为结束标志符。而‘\0’在ascii码中为0字符,不起任何控制作用,也不是一个显示的字符。不过在计算字符常量的内存大小时,双撇号内有n个字符,那么内存大小为n+1个字节。

(2)字符串变量,值得注意的是字符串常量不能赋给一个字符变量,字符串是一连串字符,而字符变量仅可以存储一个字符,而且字符串并不属于数据类型,故C语言中任何数据类型的变量都不能直接存储一个字符串,那么字符串如何存储?C语言中有两种存储字符串的方式,一种是通过字符数组存储,一种是通过字符指针存储。

C语言中通常使用字符数组作为字符串变量来存放一个字符串,数组中每一个元素存放一个字符,例如“char a[10]="love"”。上例其中a[10]作为存储字符串常量“love”的字符数组,而字符数组也被字符串“love”初始化其内存空间。而字符数组名就是其存储的字符串常量首地址。

另外,字符指针存储其实质是将字符串首地址赋给字符指针,并且内存位置也是以字符串首地址往后的一片内存空间。例如:char *buf=“hello”,其中buf为字符串首地址,字符串存储为buf地址开始的连续内存空间,可以使用buf++遍历字符串。值得注意的一点是*buf为指向字符串首地址内容,即字符h所在地址。若想输出打印字符串,使用buf++遍历是一种,也可以利用字符串首地址以字符串格式输出打印,例如:printf(“%s”,buf);

相关内容: 字符串常量 字符串变量 字符串常量和字符串变量含义

同类文章