什麼是字串常量,字元常量與字串常量的區別是什麼

2021-12-23 11:35:56 字數 4586 閱讀 4303

1樓:秒懂百科

字串常量:一對雙引號括起來的字元序列

2樓:

字串常量是由一對雙引號括起的字元序列。例如: "china" , 「c program」 ,

"$12.5" 等都是合法的字串常量。

字串常量和字元常量是不同的量。它們之間主要有以下區別:

1) 字元常量由單引號括起來,字串常量由雙引號括起來。

2) 字元常量只能是單個字元,字串常量則可以含一個或多個字元。

3) 可以把一個字元常量賦予一個字元變數,但不能把一個字串常量賦予一個字元變

量。在c語言中沒有相應的字串變數。這是與basic 語言不同的。但是可以用

一個字元陣列來存放一個字串常量。在陣列一章內予以介紹。

4) 字元常量佔一個位元組的記憶體空間。字串常量佔的記憶體位元組數等於字串中位元組數

加1。增加的一個位元組中存放字元"\0" (ascii 碼為0)。這是字串結束的標誌。

例如:字串 "c program" 在記憶體中所佔的位元組為:

c p r o g r a m \0

字元常量'a'和字串常量"a"雖然都只有一個字元,但在記憶體中的情況是不同的。'a'在記憶體中佔一個位元組,可表示為:a"a"在記憶體中佔二個位元組,可表示為:a \0

字元常量與字串常量的區別是什麼

3樓:匿名使用者

1、形式不同:

字元常量是單引號引起的一個字元;字串常量是雙引號引起的若干個字元。

2、含義不同:

字元常量相當於一個整型值,可以參加表示式的運算;字串常量代表一個地址值(該字串在記憶體中存放的位置)。字元常量可以賦值給字元變數,如"char b='a';",但不能把一個字串常量賦給一個字元變數,同時也不能對字串常量賦值。

3、佔記憶體不同:

字元常量只佔一個位元組;字串常量佔若干個位元組,(至少一個字元結束標誌)。不佔據任何儲存空間屬於指令的一部分,編譯後不再更改。字串常量是一對雙引號括起來的字元序列。

4樓:僕菱華橋清

一個是字元,一個是字串,字元在進行運算時是當整數處理的,字串不能參與運算,字串隱含了『\0'這個字元,因此它有兩個字元,字串本身是個地址等等

5樓:

字元常量 長度只有 1位元組 (1 byte),是整型量,例如 'a','\n'. 數值等於它的ascii值.

可以用於整型表示式。

字串常量 長度可以不只1位元組,是char 陣列,預設以 "\0" 結束。例如 "abc123".

通常要用str...函式來處理,例如 strcmp(),strcpy(),strlen().

6樓:來自居庸關粉妝玉琢的珍珠梅

二者都是常量,區別在於使用方法不同

字元常量使用時直接拿變數使用

而字串常量由於含不止一個字元,不易使用其全部字元內容,所以使用時通常是使用它的首地址,即指標

7樓:

字元常量只是一個字元,佔8位,字串常量佔若干個8位

8樓:匿名使用者

字元型常量是指僅含單個ascii字元的常量有兩種表示方法

1. 單撇號

如 'a' '$'

2 轉義字元

如 '\n' '\0'

儲存上佔 1位元組 存放於字元型變數中

可以與整數混合運算

字串常量是0個或多個字元的序列

用 雙撇號表示

如 「981650981725」

儲存上 等於字元數量+1 因為系統預設追加零字元 存放於字元型陣列中

9樓:匿名使用者

字元常量是單引號,字串常量是雙引號

10樓:匿名使用者

什麼一串一個的我就不說了,說點隱蔽的

1.char a = 'k' a佔一個位元組char a = "k" a佔兩個位元組

c在定義字元常量和字串變數的時候有不同,會在字串變數的末尾加上『\0』

2.char a = '1';這裡的a是一個變數,傳值,修改的規則都和int一致

char* a = 」123「;這裡的a是一個指標,函式傳值func(a)傳的是指標,不是」123「這個字串

還有不明白的385749807

11樓:匿名使用者

字串是一連串的字元

字元是單個的

字元常量和字串常量到底有什麼區別啊?

12樓:蛙家居

字元常量代表一個不可變化的固定數值值,這個字元出現就代表這個數值;字元變數可以存放定義型別的數值,而這個數值是可以變化的。

一、字元常量:

(1).定義:用單引號括起來的單個字元或轉義字元\

(2)轉義字元  反斜線後面跟著字元或一個**值表示

二、字元常量與字串常量

(1)字串常量不允許賦值給字元常量;

例如char a=」a」;錯誤字串只能由指標陣列表示 其他不能表示字串;

(2) 字元』1』和整數1是不同的概念:字元』1』只是代表一個形狀為』1』的符號,需要時按原樣輸出,在記憶體中以ascii碼形式儲存,佔1個位元組。整數1是以整數儲存方式(二進位制補碼方式)儲存的,佔2個或4個位元組。

(3) 字元型變數在記憶體中佔一個位元組,由於儲存的是字元的二進位制ascii碼,與整型資料儲存方式類似,字元型資料和整型資料可以相互運算。

13樓:

形式上: 字元常量是單引號引起的一個字元;

字串常量是雙引號引起的若干個字元;

含義上: 字元常量相當於一個整型值,可以參加表示式的運算;

字串常量代表一個地址值(該字串在記憶體中存放的位置);

佔記憶體大小:字元常量只佔一個位元組;

字串常量佔若干個位元組,(至少一個字元結束標誌)

14樓:匿名使用者

區別在一個是字元,一個是字串

字元都是單個的

字串是多個字元的集合

15樓:匿名使用者

字串在計算機儲存中結尾比字元多一個「\0」;

比如「a 」是字元,而「a \0」是字串。

16樓:

字元是一個的,例如'a' , '1', '+' 字串是一或多個的 "a" ,"b" ,"abc1"

17樓:

字元常量後面沒有\0

而字串常量後面有\0

18樓:匿名使用者

a 和 ab

也可以是'' 和""的區別

什麼是字串常量和字串變數啊???

19樓:寫在楓葉上的故事

字串常量是一對雙引號括起來的字元序列。字元常量可以賦值給字元變數,如"char b='a';",但不能把一個字串常量賦給一個字元變數,同時也不能對字串常量賦值。

字串變數是存放字元常量的變數,其取值是字元常量,即單個字元。字元變數的型別說明符是char。每個字元變數被分配一個位元組的的記憶體空間,因此只能存放一個字元。

並且字元值是以ascⅱ碼的形式存放在變數的記憶體單元之中的。

擴充套件資料字串常量的儲存:

字串中的字元依次儲存在記憶體中一塊連續的區域內,並且把空字元『 \0』自動附加到字串的尾部作為字串的結束標誌。故字元個數為n的字串在記憶體中應占(n+1)個位元組。可以輸出字串,例如:

printf("how do you do.");

字串變數的說明:

1、字元變數在記憶體中佔一個位元組。

2、在記憶體中,是把字元對應的ascii碼值放到儲存單元中。

3、字元型資料與整型資料之間可以通用。

20樓:伯穎然

字串常量就是指單 雙引號引起的若干個字元,一串字元,在程式執行過程中不會發生變化

字串變數就是指在程式執行過程中會發生變化的,但是又不存在的字元組合

21樓:來自晴川閣舒心的冰洲石

字串變數和字串常量的意思相差很多

22樓:匿名使用者

定義:括在一對雙引號之內的字元序列或轉義字元序列稱為字串常量。

例如:「how are you!」 「a」 「*abc\n\t」

它是不可以改變的.例如:

char *p="ni hao!";

如果你試圖改變指標所指向的內容是會報錯的.

例如:(*p)='h';//執行的話會報錯因為字串常量是放在靜態儲存區的,這部分內容是不能修改的。

字串變數:在c中是沒有這個概念的,c中如果想將一個字串存放到變數中,必須使用字元陣列,就是用一個字元型陣列存放一個字串,例如:

char data[10]="china";這時候,這個字元陣列存放了一個字串,它是可以改變的,

例如:data[0]='m';這種操作都是可以的。

大概意思,就這些了,不清楚的可以hi我.

字元陣列與字元常量的問題

char str name 與char str 5 str name 前者是宣告一個陣列,並給它賦初值,結果str的內容是 n a m e 0 後者的寫法,根本是錯誤的,不能對陣列的標識 即陣列的首地址 進行賦值樓主也許是想把前者跟 char str name 進行比較這句話的意思是宣告個指向常量字...

字元常量和符號常量有什麼區別?字元常量在程式設計中有

字元常量和符號常量的區別 一個常量即可以直 接用字面形式表示 稱為直接常量,如124,156.8 也可以用一個識別符號來代表一個常量,稱為 符號常量 但符號常量必須在程式中的說明部分定義,也就是說先定義,後使用。字元常量是由單個字元組成,所有字元來自ascii字符集,共有256個字元。在程式中,通常...

下面不正確的字串常量是,下面不正確的字串常量是( ) A AB B ab ab C a D

選a字串常量必須以雙引號括起來,對比看其他3個選項 b字串中的單引號雖有點兒問題,但現在編譯器還是能接受的,雙引號就不行了。cd都是正經八百的寫法。選 a 字串常量是一對雙撇號括起來的字元序列 書上是這樣寫的!c 這就一個結束符,沒任何內容。下面不正確的字串常量是 a.ab b.ab ab c.a ...