【C】簡介、基本語法、數據類型

2021-12-28 DEOCROH

C 語言是一種通用的高級語言,最初是由丹尼斯·裡奇在貝爾實驗室為開發 UNIX 作業系統而設計的。C 語言最開始是於 1972 年在 DEC PDP-11 計算機上被首次實現。

在 1978 年,布萊恩·柯林漢(Brian Kernighan)和丹尼斯·裡奇(Dennis Ritchie)製作了 C 的第一個公開可用的描述,現在被稱為 K&R 標準。

UNIX 作業系統,C編譯器,和幾乎所有的 UNIX 應用程式都是用 C 語言編寫的。由於各種原因,C 語言現在已經成為一種廣泛使用的專業語言。

易於學習。

結構化語言。

它產生高效率的程序。

它可以處理底層的活動。

它可以在多種計算機平臺上編譯。

關於 C

C 語言是為了編寫 UNIX 作業系統而被發明的。

C 語言是以 B 語言為基礎的,B 語言大概是在 1970 年被引進的。

C 語言標準是於 1988 年由美國國家標準協會(ANSI,全稱 American National Standard Institute)制定的。

截至 1973 年,UNIX 作業系統完全使用 C 語言編寫。

目前,C 語言是最廣泛使用的系統程序設計語言。

大多數先進的軟體都是使用 C 語言實現的。

當今最流行的 Linux 作業系統和 RDBMS MySQL 都是使用 C 語言編寫的。

C 程序

一個 C 語言程序,可以是 3 行,也可以是數百萬行,它可以寫在一個或多個擴展名為 ".c" 的文本文件中,例如,hello.c。您可以使用 "vi""vim" 或任何其他文本編輯器來編寫您的 C 語言程序。

C 程序主要包括以下部分:

程序的第一行 #include <stdio.h> 是預處理器指令,告訴 C 編譯器在實際編譯之前要包含 stdio.h 文件。

下一行 int main() 是主函數,程序從這裡開始執行。

下一行 /*...*/ 將會被編譯器忽略,這裡放置程序的注釋內容。它們被稱為程序的注釋。

下一行 printf(...) 是 C 中另一個可用的函數,會在屏幕上顯示消息 "Hello, W3Cschool!"。

下一行 return 0; 終止 main() 函數,並返回值 0。

C 基本語法

我們已經看過 C 程序的基本結構,這將有助於我們理解 C 語言的其他基本的構建塊。

C 的標記(Tokens)

C 程序由各種標記組成,標記可以是關鍵字、標識符、常量、字符串值,或者是一個符號。例如,下面的 C 語句包括五個標記:

printf("Hello, W3Cschool! \n");

這五個標記分別是:

printf    // 標識符
(    // 符號
"Hello, W3Cschool! \n"    // 字符串值
)    // 符號
;    // 分號是語句結束符

分號 ;

在 C 程序中,分號是語句結束符。也就是說,每個語句必須以分號結束。它表明一個邏輯實體的結束。

例如,下面是兩個不同的語句:

printf("Hello, W3Cschool! \n");
return 0;

注釋

注釋就像是 C 程序中的幫助文本,它們會被編譯器忽略。它們以 /* 開始,以字符 */ 終止,如下所示:

// 單行注釋

/*
多行注釋
多行注釋
多行注釋
*/

注意:不能在注釋內嵌套注釋,注釋也不能出現在字符串

標識符

C 標識符是用來標識變量、函數,或任何其他用戶自定義項目的名稱。一個標識符以字母 A-Z 或a-z 或下劃線_ 開始,後跟零個或多個字母、下劃線和數字(0-9)。

C 標識符內不允許出現標點字符,比如 @、$ 和 %。C 是區分大小寫的程式語言。因此,在 C 中,Manpower 和 manpower 是兩個不同的標識符。

關鍵字

下表列出了 C 中的保留字。這些保留字不能作為常量名、變量名或其他標識符名稱。

autoelselongswitchbreakenumregistertypedefcaseexternreturnunioncharfloatshortunsignedconstforsignedvoidcontinuegotosizeofvolatiledefaultifstaticwhiledointstruct_Packeddouble


C 中的空格

只包含空格的行,被稱為空白行,可能帶有注釋,C 編譯器會完全忽略它。

在 C 中,空格用於描述空白符、制表符、換行符和注釋。空格分隔語句的各個部分,讓編譯器能識別語句中的某個元素(比如 int)在哪裡結束,下一個元素在哪裡開始。因此,在下面的語句中:

int age;

在這裡,int 和 age 之間必須至少有一個空格字符(通常是一個空白符),這樣編譯器才能夠區分它們。另一方面,在下面的語句中:

fruit = apples + oranges;   // 獲取水果的總數

fruit 和 =,或者 = 和 apples 之間的空格字符不是必需的,但是為了增強可讀性,您可以根據需要適當增加一些空格。

C 數據類型

在 C 語言中,數據類型指的是用於聲明不同類型的變量或函數的一個廣泛的系統。變量的類型決定了變量存儲佔用的空間,以及如何解釋存儲的位模式。

C 中的類型可分為以下幾種:

序號類型與描述1基本類型:
它們是算術類型,包括兩種類型:整數類型和浮點類型。2枚舉類型:
它們也是算術類型,被用來定義在程序中只能賦予其一定的離散整數值的變量。3void 類型:
類型說明符 void 表明沒有可用的值。4派生類型:
它們包括:指針類型、數組類型、結構類型、共用體類型和函數類型。

數組類型和結構類型統稱為聚合類型。函數的類型指的是函數返回值的類型。在本章節接下來的部分我們將介紹基本類型,其他幾種類型會在後邊幾個章節中進行講解。

整數類型

下表列出了關於標準整數類型的存儲大小和值範圍的細節:

類型存儲大小值範圍char1 byte-128 到 127 或 0 到 255unsigned char1 byte0 到 255signed char1 byte-128 到 127int2 或 4 bytes-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647unsigned int2 或 4 bytes0 到 65,535 或 0 到 4,294,967,295short2 bytes-32,768 到 32,767unsigned short2 bytes0 到 65,535long4 bytes-2,147,483,648 到 2,147,483,647unsigned long4 bytes0 到 4,294,967,295

為了得到某個類型或某個變量在特定平臺上的準確大小,您可以使用 sizeof 運算符。表達式 sizeof(type) 得到對象或類型的存儲字節大小。下面的實例演示了獲取 int 類型的大小:

#include <stdio.h>
#include <limits.h>

int main()
{
printf("Storage size for int : %d \n", sizeof(int));

return 0;
}

當您在 Linux 上編譯並執行上面的程序時,它會產生下列結果:

Storage size for int : 4

浮點類型

下表列出了關於標準浮點類型的存儲大小、值範圍和精度的細節:

類型存儲大小值範圍精度float4 byte1.2E-38 到 3.4E+386 位小數double8 byte2.3E-308 到 1.7E+30815 位小數long double10 byte3.4E-4932 到 1.1E+493219 位小數

頭文件 float.h 定義了宏,在程序中可以使用這些值和其他有關實數二進位表示的細節。下面的實例將輸出浮點類型佔用的存儲空間以及它的範圍值:

#include <stdio.h>
#include <float.h>

int main()
{
printf("Storage size for float : %d \n", sizeof(float));
printf("Minimum float positive value: %E\n", FLT_MIN );
printf("Maximum float positive value: %E\n", FLT_MAX );
printf("Precision value: %d\n", FLT_DIG );

return 0;
}

當您在 Linux 上編譯並執行上面的程序時,它會產生下列結果:

Storage size for float : 4
Minimum float positive value: 1.175494E-38
Maximum float positive value: 3.402823E+38
Precision value: 6

void 類型

void 類型指定沒有可用的值。它通常用於以下三種情況下:

序號類型與描述1函數返回為空
C 中有各種函數都不返回值,或者您可以說它們返回空。不返回值的函數的返回類型為空。例如 void exit (int status);2函數參數為空
C 中有各種函數不接受任何參數。不帶參數的函數可以接受一個 void。例如 int rand(void);3指針指向 void
類型為 void * 的指針代表對象的地址,而不是類型。例如,內存分配函數 void *malloc( size_t size ); 返回指向 void 的指針,可以轉換為任何數據類型。

如果現在您還是無法完全理解 void 類型,不用太擔心,在後續的章節中我們將會詳細講解這些概念。

相關焦點

  • Python3 基本數據類型
    在 Python 中,變量就是變量,它沒有類型,我們所說的"類型"是變量所指的內存中對象的類型。多個變量賦值Python允許你同時為多個變量賦值。例如:a = b = c = 1您也可以為多個對象指定多個變量。
  • Python 基本數據類型介紹
    【浮點數】float 是 Python 中實現浮點類型數字的數據類型。float 類型的數值通過小數點(.)來指定。也可以在數值後邊追加字符 E(或 e)來使用科學計數法表示一個浮點數。這可能會引起語法錯誤:>>> print('a File "<stdin>", line 1 print('a ^SyntaxError: EOL while scanning string literal如果需要,這時候可以使用 \ 對換行符進行轉義,以表明這是一個多行語句
  • C語言簡明教程(二)數據類型
    實驗簡介從本章開始我們將要引入大量的 C 語言程序案例,把算法和語法結合起來,通過引導大家由淺入深地編寫 C 程序,讓大家掌握 C 語言。數據類型什麼是數據類型我們之前的案例中講到了整數類型 int 定義整型變量,在程序中我們還會用到浮點類型(float)來表示具有小數點的實數,講解數據類型之前我們先來看一個用到浮點型數據的例子 3-2:一臺拖拉機耕地一畝耗油 0.85kg,它的油箱的容積是 100 升(0.1m3),柴油的密度是 850kg/m3,該拖拉機裝滿油後最多耕地的畝數是多少
  • Arduino C語法介紹
    Arduino 語法是建立在 C/C++ 基礎上的,其實也就是基礎的 C 語法, Arduino 語法只不過把相關的一些參數設置都函數化
  • C語言知識複習-數據類型
    常量和變量,整型和實型標識符命名,變量的定義和賦值計算數據類型:變量   =   表達式 ;規則:左值和右值類型一致變量的類型決定了數據的存儲形式合法的取值範圍佔用內存空間的大小可參與的運算種類基本數據類型int 整數 在目前絕大多數機器上佔4個字節float
  • Python3 基本數據類型 | Python Data Type
    以上實例,兩個整型對象 1 和 2 的分配給變量 a 和 b,字符串對象 「runoon」 分配給變量 c。標準數據類型不可變數據(3 個):Number(數字)、String(字符串)、Tuple(元組);可變數據(3 個):List(列表)、Dictionary(字典)、Set(集合)。
  • 搜尋引擎基本語法
    google基本語法Index of/ 使用它可以直接進入網站首頁下的所有文件和文件夾中。intext:  將返回所有在網頁正文部分包含關鍵詞的網頁。intitle:  將返回所有網頁標題中包含關鍵詞的網頁。cache:  搜索google裡關於某些內容的緩存。
  • C 語言學習之變量、數據類型
    變量相當於內存中一個數據存儲空間的表示,通過變量名可以訪問到該變量【值】,變量使用的基本步驟:int main(){ int a = 0;每一種數據都定義了明確的數據類型,在內存中分配了不同大小的內存空間
  • C語言 基本語法
    C 基本語法我們已經看過 C 程序的基本結構,這將有助於我們理解 C 語言的其他基本的構建塊。
  • 數據結構與算法:02 C#語言基本語法結構
    C#語言基本語法結構知識結構:圖1 知識結構1、數據類型第一種分類:簡單數據類型:byte、short、int、long、float、double、char、bool組合數據類型:struct、enum、class、interface
  • Python基本錯誤類型
    Python中錯誤類型有很多種,本節先介紹幾個最基本的,其他的錯誤遇見了之後,可以將錯誤類型複製粘貼在百度中進行查找。
  • JS 最新數據基本類型:BigInt
    BigInt數據類型的目的是比 Number數據類型支持的範圍更大的整數值。在對大整數執行數學運算時,以任意精度表示整數的能力尤為重要。使用 BigInt,整數溢出將不再是問題。此外,可以安全地使用更加準確時間戳,大整數ID等,而無需使用變通方法。
  • C語言知識點概要第二部分(數據類型)
    部分格式字符輸出舉例:"\n有符號整型數據格式:\n"); printf("%d,%hd,%ld,%lld\n",a,b,c,d); printf("\n有符號和無符號字符類型數據格式:\n"); { char ch='a'; unsigned cha=255; printf("%c,%c\n整數格式輸出:\n%d,%u\n",ch,cha,ch,cha); } printf("\n無符號整型數據格式
  • python語法基礎
    學一門語言,基礎語法一定要紮實。很多入門的編程書籍,都會花大量的篇幅來介紹基礎語法,對於毫無編程經驗的新手而言,這樣的書籍無疑是很友好的,但是對於有編程經驗的開發者而言,很多的基礎語法是通用的, 只需花費較少的時間瀏覽下基礎語法,將精力集中在語言獨有的特徵上即可。
  • JAVA java的基本語法之基本語法格式,注釋、關鍵字、標示符
    一、 Java 的基本語法Java作為一門程式語言,有自己的規則,這個規則我們把它叫做語法。
  • SAS基本語法
    像任何其他程式語言中,SAS語言都有其自己的語法規則來創建SAS程序。任何SAS方案的三個組成部分 - 聲明,變量和和數據集遵循以下語法規則。
  • PowerShell 基本語法及常用命令
    PowerShell常用命令:一 Get類1.Get-Command :得到所有PowerShell命令,獲取有關 cmdlet 以及有關 Windows PowerShell 命令的其他元素的基本信息。
  • Kotlin教程之「基本類型」
    基本類型Kotlin 中,我們可以調用任何變量的成員函數和屬性,從這個角度來說,一切皆對象。
  • 寫給小白看的入門級 Java 基本語法
    01、數據類型Java 有 2 種數據類型,一種是基本數據類型,一種是引用類型。基本數據類型用於存儲簡單類型的數據,比如說,int、long、byte、short 用於存儲整數,float、double 用於存儲浮點數,char 用於存儲字符,boolean 用於存儲布爾值。
  • 用 Python 操作 JSON 類型數據詳解
    JSON簡介JSON(JavaScript Object Notation)是一種輕量級的數據交換格式