C++语言基础-字符数组
作者 佚名技术
来源 程序设计
浏览
发布时间 2012-06-30
奇怪的是,C++不支持字串变量(放置文本的变量),C++程序中的字串是用char数据类型的数组表示的。例如,可以将变量赋予char数组如下: char text[] = "This is a string."; 这就在内存中分配18字节的内存空间用于存放字串。根据你的领悟能力,也许你会发现该字串中只有17个字符。分配18个字节的原因是字串要以终止null结尾,C++在分配内存空间时把终止null算作一个字符。 新术语 终止null是个特殊字符,用|0表示,等于数值0。程序遇到字符数组中的0时,表示已经到字串末尾。为了说明这点,输入并运行下列控制台应用程序。 清单1.6Nulltest.cpp 1: #include <iostream.h> 2: #include <conio.h> 3: #pragma hdrstop 4: 5: int main(int argc,char **argv) 6: { 7:char str[]="This is a string."; 8.cout << str << end1; 9.str[7]= ''\0''; 10. cout << str << end1 11. cout << end1 << "Press any key to continue..."; 12: getch(); 13: return 0; 14: } 分析 最初,字符数组包含字符串This is a string和一个终止null,这个字串通过cout送到屏幕上。下一行将数组的第7个元素赋值为|0,即终止null。字串再次发送到屏幕上,但这时只显示This is。原因是计算机认为数组中字串在第7个元素上终止,余下字串仍然在内存空间中,但不显示,因为遇到了终止null。图1.10演示了将数组的第7个元素赋值为|0的语句前后的字符数组。 之前 Thi sisastri ng.\0 之后 This is\0astri ng.\0 图1.10字符数组的内容 清单1.6中也可以赋值0而不是''|0'',结果相同,因为数字0和char数据类型''|0''是等值的。例如,下列语句是等价的: str[7] = ''|0''; str[7] = 0; 说明 C++程序中单引号与双引号是有差别的。向数组元素赋值终止null和其它字符值时,必须用单引号。单引号的作用是将引号内的字符变成整型值(该字符的ASCII值),然后将这个值存放在内存地址中。将字串赋予字符数组时,必须用双引号。如果用错引号,则编译器会发生编译错误。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 深度探索C++对象模型(2)下一篇: C++/CLR泛型与C++模板之间的对比
关于C++语言基础-字符数组的所有评论