1. 程式人生 > 其它 >c語言如何持續輸入字元直到指定字元結束_C語言 — 常量

c語言如何持續輸入字元直到指定字元結束_C語言 — 常量

技術標籤:c語言如何持續輸入字元直到指定字元結束

常量的含義:

常量就是其值在程式執行過程中不可以改變的量。

一丶整型常量

在C語言中,整型常量分為十進位制整型常量、八進位制整型常量和十六進位制整型常量三種表示形式。

1、十進位制整型常量

  此種格式的整型常量只能出現 0~9 的數字,且可帶正、負號。比如:

  0 1 364 28 -34

2、八進位制整型常量

此種格式的整型常量以數字0開頭的八進位制數字串。其中數字為 0~7。例如:

  0111十進位制 73、 011十進位制 9、 0123十進位制 83、

3、十六進位制整型常量

  此種格式的整型常量以0x或0X(x是大寫)開頭的十六進位制數字串。其中每個數字可以是 0~9、a~f或 A~

  F 中的數字或英文字母。例如:

  0x11十進位制 17、 0Xa5十進位制 165、 0x5a十進位制 90

二丶實型常量

實型常量又稱實數浮點數。在C語言中可以用兩種形式來表示一個實型常量。

1、小數形式

小數形式的實型常量由兩部分組成:數字和小數點。如:0.1212..12都是合法的實型常量。

2、指數形式

在C語言中,以"e"或"E"後跟一個整數來表示以10為底的冪數。如:2.306可以表示為0.2306E1、2.306e0、23.06e-1。C語言語法規定:

字母e或E之前必須要有數字,且e或E後面的指數必須為整數。

注意:在字母e或E的前後以及數字之間不得插入空格。

三丶字元型常量

字元常量是由一對單撇號括起來的單個字元,如 'a'、'D'、'?'、'$'。在 C 語言中,除了字元常量外還有字串常量,顧名思義就是多個“字元”串在一起。與字元常量有所不同,字串常量是用“雙撇號”括起來的多個字元的序列,如"How are you"、"I love you"、"你好"。當然,只要是“雙撇號”括起來的,就算只有一個字元也叫字串,如"a"。字元常量 'a'與字串常量"a"是不同的。

一個字元在記憶體中只佔一位元組,而字串本質上是多個字元組成的字元陣列。C語言規定,在每一個字串常量的結尾,系統都會自動加一個字元'\0'作為該字串的“結束標誌符”,系統據此判斷字串是否結束。這裡要特別強調一點:'\0'是系統自動加上的,不是人為新增的。'\0' 是 ASCII 碼為 0 的字元,它不會引起任何控制動作,也不是一個可以顯示的字元。比如字串常量"CHINA",表面上看它只有 5 個字元,但實際上它在記憶體中佔 6 位元組,'C'、'H'、'I'、'N'、'A'、'\0' 各佔一位元組。如果要輸出該字串,'\0' 不會輸出。也就是說,雖然實際上總共有 6 個字元,'\0' 也包括在其中,但輸出時 '\0' 不會輸出。系統從第一個字元 'C' 開始逐個輸出字元,直到遇到 '\0',則表示該字串結束,停止輸出。

也就是說,在字串常量中,如果“雙撇號”中能看見的字元有 n 個,那麼該字串在記憶體中所佔的記憶體空間為 n+1 位元組。

# include int main(void){    printf("%d\x20", sizeof(""));    printf("%d\x20", sizeof("a"));    printf("%d\x20", sizeof("CHINA"));    printf("%d\x20", sizeof("How are you"));    printf("%d\x20", sizeof("I love you"));    printf("%d\n", sizeof("你好"));    return 0;}

輸出結果是:
1 2 6 12 11 5

第一個“雙撇號”中什麼都不寫,則只有 '\0' 一個字元,所以只佔一位元組。第二個"a"中有 1 個可見字元,佔 2 位元組。第三個"CHINA"有 5 個可見字元,佔 6 位元組。第四個"How are you"中,空格也是字元,也算是可見的,所以總共有 11 個可見字元,共佔 12 位元組。第五個"I love you"共 10 個可見字元,佔 11 位元組。第六個"你好"為什麼佔 5 位元組?有 2 個可見字元不是應該佔3位元組嗎?C 語言規定,1 個英文字元佔 1 位元組,而 1個 中文字元佔 2 位元組,就算是中文的標點符號也是佔 2 位元組。所以兩個漢字佔 4 位元組,加上 '\0' 總共是 5 位元組。

四丶符號常量

如果一個程式的功能是求解一個長方體的體積,其中長方體的高度是固定的,使用一個符號名代替固定的常量值,這裡使用的符號名就稱之為符號常量。使用符號常量的好處在於可以為程式設計和閱讀帶來方便。

舉例:

本例項使用符號常量來表示圓周率,在控制檯上顯示文字提示使用者輸入資料,該資料是有關圓半徑的值。得到使用者輸入的半徑,經過計算得到圓的面積,最後將結果顯示出來。

#include#define PAI 3.14                        /*定義符號常量*/int main(){doublefRadius;          /*定義半徑變數*/doublefResult=0;    /*定義結果變數*/printf("請輸入圓的半徑:");    /*提示*/scanf("%lf",&fRadius);              /*輸入資料*/fResult=fRadius*fRadius*PAI;    /*進行計算*/printf("圓的面積為:%lf\n",fResult);/*顯示結果*/return0;/*程式結束*/}

執行結果:

222ae6a1883c3058c358560a2967e561.png