C++中常变量与符号变量的区别以及“\”的用途

用#define命令定义的符号常量与用const定义的常变量的区别:

符号常量只是用一个符号代替一个字符串,在预编译时把所有符号常量替换为所指定的字符串,它没有类型,在内存中并不存在一符号常量命名的存储单元。而常变量具有变量的特征,它具有类型,同时在内存中存在着以它命名的存储空间,可以用sizeof测出其长度。与一般变量不同的是它的值是不能改变的。并且用const定义的常变量必须在定义的时候就对其进行初始化。


对于字符串常量“abc”来说,在内存中是占了四个字节,因为它第四个字节是存放了“\0”作为一个字符串结束的标志,但是“\0” 并不是字符串的一部分,只作为字符串结束的标志。

对于字符串常量“abc\n”来说,是4个字符,在内存中占了5个字节,其中“\n”是一个转义字符。编译系统在遇到“\”的时候就会把它默认为是转义字符的标志,把它和后面的字符一起作为一个转义字符。如果希望将“\”字符也作为字符串的一个字符,则应该写成“abc\\n”,此时字符包括5个,即为:a,b,c,\,n。如果有以下输出语句:

cout<<"abc\\\n"<<endl;     会输出:abc\,然后换行;

同理如果输出:cout<<"I say \"Thank you!\"\n"<<endl;  会输出:I say "Thank you!";


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值