当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > 字符串常量和字符串变量

字符串常量和字符串变量 时间:2019-05-27      来源:华清远见

字符常量是由一对单撇号括起来的单个字符,如 ‘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);

上一篇:什么是结构体

下一篇:Object中有哪些公共方法及作用

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2018 北京华清远见科技发展有限公司 版权所有 ,京ICP备16055225号,京公海网安备11010802025203号

回到顶部

有位老师想和您聊一聊