字符串常量

给出字符串的定义:
字符串是以空字符结尾的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

 

posted @ 2016-04-12 13:17  LT.C#  阅读(1060)  评论(0编辑  收藏  举报