当前位置首页 > 百科资料> 正文

字符串常量

2022-06-30 09:38:53 百科资料

定义:用双引号("")括起来的0个或者多个字符组成的序列

存储:每个字符串尾自动加一个 '' 作为字符串结束标志

  • 中文名 字符串常量
  • 外文名 string lteral

含义

常量的本质

  不占据任何存储空间属于指令的一部分,编译后不再更改。

  字符串常量是一对双引号括起来的字符序列。

  字符常量可以赋值给字符变量,如"char b='a';",但不能把一个字符串常量赋给一个字符变量,同时也不能对字符串常量赋值!

  例如下面的是合法的字符串常量:

  "how do you do.","CHINA","a","$123.45""C language programming"、"a\n"、"#123"、" "等为字符串常量

  存储:字符串中的字符依次存储在内存中一块连续的区域内,并且把空字符' '自动附加到字符串的尾部作为字符串的结束标志。故字符个数为n的字符串在内存中应占(n+1)个字节。

  可以输出字符串,例如:

  printf("how do you do.");

字符串

  字符串是由零个或多个字符组成的有限序列。一般记为 s ="a1 a2…an"( n > =0) 。它是编程语言中表示文本的数据类型,代表具有一定意义的信息,现实世界的大部分信息都以字符串的形式表示。对于一种编程语言来说,字符串处理是许多需要进行的重要任务之一,如用户程序输入信息、程序向用户显示信息等。所以几乎每一种编程语言都要有专门针对字符串的表示和操作。

比较

  ​与字符常量的比较

  C语言允许使用字符串常量外,还允许使用字符常量。

关系

与字符数组的关系

  在C语言中没有专门的字符串变量,如果想将一个字符串存放在变量中以便保存,必须使用字符数组,即用一个字符型数组来存放一个字符串,数组中每一个元素存放一个字符。例如"char a[10]="love"."

与指针的关系

  在程序中,字符串常量会生成一个"指向字符的常量指针"。当一个字符串常量出现于一个表达式中时,表达式所使用的值就是这些字符所存储的地址,而不是这些字符本身。因此,你可以把字符串常量赋值给一个"指向字符 的指针",例如:char *a = "123" ; a = "abc";,后者指向这些字符所存储的地址。但是,你不能把字符串常量赋值给一个字符数组,因为字符串常量的直接值是一个指针,而不是这些字符本身。例如:char a[5];a[0] = "a";就是错误的,报错结果:invalid conversion from 'const char*' to 'char'。

  例如:char a[10]="love",的意思就是用字符串"love"来初始化字符数组a的内存空间,而数组的首地址也就是"love"字符串的地址。

创建

​字符串常量 String 类 字符串常量的创建

  Java 语言是纯粹的面向对象的语言,所以它的字符串是用对象表示的,Java 语言的字符串分为字符串常量( 用 String 类的对象表示) 和字符串变量( 用 StringBuffer 类的对象表示) ,它们都位于java. lang 包中,他们除了能够表示字符串外,还定义了很多专门进行字符串的处理方法。

  和创建其它的任一种对象的方式相同,创建String 对象也需要调用它的构造方法来完成,如:String s = new String( "abc") ; 也可用另一种直接赋值 的 方 式 来 创 建 String 对 象,如: String s ="abc";虽然通过以上两种方式都可以创建 String 对象,但是二者在创建对象时采用的内存分配方式是不同的。如果是按照以下调用构造方法的形式来 创 建 String 对 象: String s1 = new String( "abc") ; String s2 = new String( "abc")。s1 和 s2 分别占有独立的内存空间,利用"= = "相比较的话,则 s1 = =s2 的结果为 false。但是由于在程序中经常出现大量 String 对象的值相同的情况,造成内存空间的冗余。为了有效地利用内存,Java 中预留了一块特殊的内存区域,称为 String 常量池。当编译器遇到一个 String 常量时,先检查常量池中是否存在值相同的 String 常量,如果存在,则把该常量的引用指向常量池中的 String 常量。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net