全国统一学习专线 8:30-21:00
位置:七考网 > 教育 > 学习 > 字符串常量及字符串变量是什么意思  正文

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

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);

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

同类文章
导航

一级建造师 二级建造师 消防工程师 消防设施操作员 BIM 造价工程师 环评师 监理工程师 咨询工程师 安全工程师 建筑九大员 公路水运检测 通信工程 智慧消防工程师 装配工程师 一级注册建筑师 二级注册建筑师 注册电气工程师 智慧建造工程师 房地产估价师 EPC工程总承包 碳排放管理师 雅思 托福 GRE 托业 SAT GMAT A-Level ACT AP课程 OSSD 多邻国英语 考研英语 英语四六级 商务英语 青少儿英语 IB英语 剑桥英语 职场英语 提升英语 AEAS 英语口语 出国英语 初高中英语 学生英语 成人英语 公共英语 词库 经济师 初级会计师 中级会计师 注册会计师 基金从业 证券从业 薪税师 银行从业 CMA ACCA 会计实训 税务师 CFA 企业合规师 审计师 FRM 高级会计师 税务师 期货从业 CQF 真账实操技能 葡萄牙语 日语 德语 法语 韩语 西班牙 意大利 高考小语种 粤语 泰语 俄语 阿拉伯语 电商视觉设计 影视后期 剪辑包装 游戏设计 游戏程序 UI设计 室内设计 UXD全链路 平面设计 CAD设计制图 商业空间设计