博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字符串常量
阅读量:5048 次
发布时间:2019-06-12

本文共 660 字,大约阅读时间需要 2 分钟。

给出字符串的定义:

字符串是以空字符结尾的char型数组
再给出字符串常量的定义:
字符串常量又称为字符串文字,是指位于一对双引号中的任何字符。双引号里面的字符加上编译器自动提供的结束标志\0字符,作为一个字符串被存在数组当中。
那么怎么理解“字符串常量给出的是地址值”呢?
看到这里就要知道在调用一个数组的时候,一般是给出这个数组的首元素的地址值,数组a的首元素的地址值&a[0]就是我们首先得到的一个数组的调用的值。那么上面也说过了,字符串常量作为一个数组,被储存在内存中,内存是按地址来分配空间的,当调用一个字符串常量的时候,就会得到这个字符串它的地址值。也就是这个意思。

 

 

另外,关于常量的地址问题

楼上的说法都是有问题的,C/C++只有文字常量区,保存的是"hello world"这类字符串。对于1、2、3、'a'这类的数,它们是存放在寄存器上的,没有所谓的内存地址。

C/C++只可以用指针取字符串常量的地址,该类被认为是左值,而其他的字面值常量(literal constant),则被认为是右值,不允许取地址。至于const常量,只能说是一个const修饰的只读变量,和字面值常量不同。

 

我只说两点:

1、字符串常量是有地址的 p="fuck".
2、数据常量如5、6等,不需要地址存放,它作用是来初始化或者赋值,
左值就成了它的地址,如 int fuck=5.我们使用时是使用fuck,而不是使用5

 

转载于:https://www.cnblogs.com/YTYMblog/p/5382278.html

你可能感兴趣的文章
Cocos2d-x3.0 文件处理
查看>>
全面整理的C++面试题
查看>>
Activity和Fragment生命周期对比
查看>>
OAuth和OpenID的区别
查看>>
android 分辨率自适应
查看>>
查找 EXC_BAD_ACCESS 问题根源的方法
查看>>
国外媒体推荐的5款当地Passbook通行证制作工具
查看>>
日常报错
查看>>
list-style-type -- 定义列表样式
查看>>
hibernate生成表时,有的表可以生成,有的却不可以 2014-03-21 21:28 244人阅读 ...
查看>>
mysql-1045(28000)错误
查看>>
Ubuntu 编译出现 ISO C++ 2011 不支持的解决办法
查看>>
1.jstl c 标签实现判断功能
查看>>
Linux 常用命令——cat, tac, nl, more, less, head, tail, od
查看>>
超详细的Guava RateLimiter限流原理解析
查看>>
VueJS ElementUI el-table 的 formatter 和 scope template 不能同时存在
查看>>
Halcon一日一练:图像拼接技术
查看>>
Swift - RotateView
查看>>
iOS设计模式 - 中介者
查看>>
centos jdk 下载
查看>>