字元串常量

定義:用雙引號(“”)括起來的0個或者多個字元組成的序列

存儲:每個字元串尾自動加一個 ‘\0’ 作為字元串結束標誌

基本介紹

  • 中文名:字元串常量
  • 外文名:string lteral
含義,常量的本質,字元串,與字元常量的比較,與字元數組的關係,與指針的關係,字元串常量 String 類 字元串常量的創建,

含義

常量的本質

不占據任何存儲空間屬於指令的一部分,編譯後不再更改。
字元串常量是一對雙引號括起來的字元序列。
字元常量可以賦值給字元變數,如"char b='a';",但不能把一個字元串常量賦給一個字元變數,同時也不能對字元串常量賦值!
例如下面的是合法的字元串常量:
"how do you do.","CHINA","a","$123.45"“C language programming”、“a\\n”、“#123”、“ ”等為字元串常量
存儲:字元串中的字元依次存儲在記憶體中一塊連續的區域內,並且把空字元‘ \0’自動附加到字元串的尾部作為字元串的結束標誌。故字元個數為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 常量。

相關詞條

熱門詞條

聯絡我們