C語言中的基本資料型別是什麼?
C語言中的基本資料型別
基本資料型別,也稱為基礎資料型別,是C語言中的內建資料型別。C編譯器支援四種基本資料型別。它們如下所示:
- 整數
- 字元
- 浮點數
- 雙精度浮點數
基本資料型別是用於儲存和處理C語言中不同型別資料的構建塊。下面,我們將簡要概述這些資料型別。
整型資料型別
整型資料型別用於儲存整數和字元。這些是程式設計中最重要的資料型別,因為它們定義了資料在記憶體中的表示方式。它們進一步分為兩種型別
- 整數資料型別
- 字元資料型別
整數資料型別
整數資料型別專門用於儲存整數。整數儲存型別包括short int、int和long int,它們可以表示正值和負值,具體取決於有符號和無符號形式。
下表顯示了每種資料型別佔用多少記憶體以及我們可以儲存的最小值和最大值。還包括每種型別的控制字串。
型別 | 大小(以位元組為單位) | 範圍 | 控制字串 |
---|---|---|---|
short int(或 signed short int) | 2 | -128 到 127 | %h |
unsigned short int | 2 | 0 到 255 | %hu |
int(或 signed int) | 4 | -32,768 到 32,767 | %d 或 %i |
unsigned int | 4 | 0 到 65,535 | %u |
long int(或 signed long int) | 4 | -2,147,483,648 到 2,147,483,647 | %ld |
unsigned long int | 4 | 0 到 4,294,967,295 | %lu |
以下是C語言中整數資料型別的示例。
#include <stdio.h> int main() { // Integer data types int num = 100; // Regular integer unsigned int uNum = 200; // Unsigned integer short int sNum = -50;// Short integer long int lNum = 1000000; // Long integer // Printing integer values printf("Integer Value: %d
", num); // Output: 100 printf("Unsigned Integer Value: %u
", uNum); // Output: 200 printf("Short Integer Value: %d
", sNum); // Output: -50 printf("Long Integer Value: %ld
", lNum); // Output: 1000000 return 0; }
字元資料型別
字元資料型別用於僅儲存字元。這些字元在內部儲存為整數,其中每個字元都有一個等效的ASCII值。例如,字元'A'的ASCII值為65。
處理字元資料型別對於處理程式中的文字非常重要。它們允許我們操作單個字元並處理字串。字串只是字元序列。在C語言中,字串表示為char型別的陣列,並在末尾以特殊空字元('\0')表示字串的結束位置。
下表提供了有關型別及其大小、儲存大小限制、控制字串等更多資訊。
型別 | 大小(以位元組為單位) | 範圍 | 控制字串 |
---|---|---|---|
char(或 signed char) | 1 | -128 到 127 | %C |
unsigned char | 1 | 0 到 255 | %c |
以下是C語言中字元資料型別的程式碼示例。
#include <stdio.h> int main() { // Store a character char ch = 'A'; // We store the letter 'A' in ch unsigned char uCh = 'B'; // We store the letter 'B' in uCh // Print the character values printf("Character: %c
", ch); // Output: A printf("Unsigned Character: %c
", uCh); // Output: B // Print the ASCII values of the characters printf("ASCII of %c: %d
", ch, ch); // Output: 65 printf("ASCII of %c: %d
", uCh, uCh); // Output: 66 return 0; }
浮點數資料型別
我們使用float資料型別來儲存具有小數部分的數字。它通常在記憶體中佔用4個位元組(32位)。這使我們能夠以大約6到7位的精度顯示實數。在需要處理十進位制數的情況下,例如圖形中的顏色和座標,float非常有用。
但是,我們需要小心,因為使用float可能會導致舍入誤差。如果我們進行大量計算,這些小錯誤可能會累積並改變我們的最終答案。因此,即使float節省了記憶體,我們也應該牢記其限制。下表提供了儲存浮點值的各種資料型別的列表:
型別 | 大小(以位元組為單位) | 範圍 | 控制字串 |
---|---|---|---|
float | 4 | 3.4E - 38 到 3.4E + 38 | %f |
double | 8 | 1.7E - 308 到 1.7E + 308 | %lf |
long double | 16 | 3.4E - 4932 到 1.1E + 4932 | %Lf |
以下是C語言中float資料型別的程式碼示例。
#include <stdio.h> int main() { float pi = 3.14f; // The 'f' tells us this is a float number printf("Value of pi: %.2f
", pi); // This shows: Value of pi: 3.14 return 0; }
每種型別都有其用途,具體取決於我們需要的數字精度。使用正確的型別有助於我們的程式更好地執行並提供正確的答案。對於許多工,float 足夠好。但對於科學計算等任務,我們通常選擇double,因為它可以提供更高的精度。
雙精度浮點數資料型別
當我們需要比float更高的精度時,我們使用double資料型別。它在記憶體中佔用8個位元組(64位)。我們可以使用double儲存大約15到16位的精度數字。這在科學或金融等領域非常有用,因為在這些領域中,精度至關重要。
double的一大優點是它有助於減少舍入誤差。當我們進行許多計算時,小錯誤可能會累積併產生很大影響。使用double意味著當我們處理大量資料時,我們的答案會更準確。
例如,如果我們想儲存一個精確的值,如π(圓周率),我們可以使用double將其保留為3.141592653589793。
以下是C語言中雙精度浮點數的程式碼。
#include <stdio.h> int main() { double pi = 3.141592653589793; // We store a precise value in a double printf("Value of pi: %.15f
", pi); // We print it with 15 decimal places return 0; }
簡而言之,當我們需要更高的精度時,我們選擇double。它比float佔用更多記憶體,但這額外的精度在許多情況下都很有幫助。