1.概述
C語言能以簡易的方式編譯、處理低級存儲器。
C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。盡管C語言提供了許多低級處理的功能,但仍然保持著跨平臺的特性,以一個標準規格寫出的C語言程序可在包括一些類似嵌入式處理器以及超級計算機等作業平臺的許多計算機平臺上進行編譯。
馮·諾依曼在1945年提出了現代計算機的若干思想,被后人稱為馮·諾依曼思想,這是計算機發展史上的里程碑。自1945 年至今大多采用其結構,因此馮.諾依曼被稱為計算機之父。他的體系結構計算機由運算器、控制器、存儲器、輸入設備、輸出設備五大部件構成。C語言擁有一套完整的理論體系經過了漫長的發展歷史,在編程語言中具有舉足輕重的地位。
C語言誕生于美國的貝爾實驗室,由 D.M.Ritchie 以B語言為基礎發展而來,在它的主體設計完成后,Thompson 和 Ritchie 用它完全重寫了UNIX,且隨著UNIX的發展,C語言也得到了不斷的完善。為了利于C語言的全面推廣,許多專家學者和硬件廠商聯合組成了C語言標準委員會,并在之后的 1989 年,誕生了第一個完備的C標準,簡稱“ C89”,也就是“ ANSI C”。
到目前為止,C語言標準委員會修訂發布了3個標準: C89(C90)、 C99、 C11、C17。
C17 是 ISO/IEC 9899:2018 標準,于 2018 年發布。
C17 標準在 C11 基礎上進行了一些小的修訂和更新,主要是對標準庫進行了一些改進和擴展。C17 標準對于C語言本身的特性并沒有做出太大的改變,主要是對于一些庫函數進行了更新和擴展。C17 標準目前還比較新,尚未得到廣泛的應用。
2.C語言現狀
(1).C語言是操作系統內核開發領域幾乎是唯一開發工具, 大部分操作系統是由C加上少量匯編語言開發的;比如:Linux、Windows、Vxworks、Unix。
(2).在嵌入式領域占有絕對優勢。
(3).在網絡服務器類相當大優勢 Apache、 Oracle。
(4).GUI 應用領域、大型商用程序采用 C 的較多 。 比如: Offices, SPSS, AutoCAD。
(5).大規模、高性能計算、游戲開發以及一些傳統的客戶端軟件和構件。
總之,C語言有這自身獨特的優勢,盡管現今開發語言眾多,但C語言的高效性還是有著自身的獨特性。在AI人工智能中對C語言現狀的查詢的查詢如下:
3.C語言數據類型
在C語言中,數據類型指的是用于聲明不同類型的變量或函數的一個約束。變量的類型決定了變量存儲占用的空間。
序號 |
類型與描述 |
1 |
基本類型:算數類型,包括整數類型和浮點類型 |
2 |
枚舉類型:算數類型,用來定義固定的整數值變量 |
3 |
void類型:類型說明符void表示沒有可用的值。 |
4 |
派生類型:包括指針類型、數組類型、結構體類型、共用體類型和函數類型。 |
4.基本類型
C語言中基本數據類型有:字符符型(char)、短整型(short)、整型(int)、長整型(long)、浮點型(float)、雙精度浮點型(double)。使用sizeof計算數據類型占用空間大小。
數量類型 |
占用空間 |
定義和輸出方式 |
取值范圍 |
字符型(char) |
1個字節 |
%c或者%hhd |
CHAR_MIN、CHAR_MAX |
短整型(short) |
2個字節 |
%hd |
SHRT_MIN、SHRT_MAX |
整型(int) |
4個字節 |
%d |
INT_MIN、INT_MAX |
長整型(long) |
8個字節 |
%ld |
LONG_MIN、LONG_MAX |
浮點型(float) |
4個字節 |
%f |
FLT_MIN、FLT_MAX |
雙精度浮點型(double) |
8個字節 |
%lf |
DBL_MIN、DBL_MAX |
注意:再輸出取值范圍時,上述宏在limits.h和float.h中定義。
FLT_MIN、DBL_MIN表示的是正數最小值;FLT_MAX、DBL_MAX表示正數最大值。
5.進制輸出
C語言中有二進制、八進制、十進制、十六進制。其中八進制、十進制、十六進制可以直接出。
進制 | 定義及輸出格式 |
二進制 | int a=0b1011;無直接輸出方式 |
八進制 | int a=012; “%#o”輸出 |
十進制 | int a=12; “%d”輸出 |
十六進制 | int a=0x12; “%#x”輸出 |
%#x --格式化打印自動添加格式前綴。
示例1:
#include
int main()
{
int a=10;//10進制
printf("八進制:%#on",a);//八進制輸出
printf("十進制:%dn",a);//十進制輸出
printf("十六進制:%#xn",a);//十六進制輸出
int b=0b1011;//二進制,十進制為11
int c=023;//八進制,十進制為19
int d=0x12;//十六進制,十進制為18
printf("b=%d,c=%d,d=%dn",b,c,d);
}
[wbyq@wbyq 1227]$ gcc main.c
[wbyq@wbyq 1227]$ ./a.out
八進制:012
十進制:10
十六進制:0xa
b=11,c=19,d=18
-
計算機
+關注
關注
19文章
7494瀏覽量
87933 -
C語言
+關注
關注
180文章
7604瀏覽量
136794 -
UNIX
+關注
關注
0文章
296瀏覽量
41490 -
編程語言
+關注
關注
10文章
1945瀏覽量
34732
發布評論請先 登錄
相關推薦
評論