c語言是一門通用計算機程式語言,廣泛應用於底層開發。c語言的設計目標是提供一種能以簡易的方式編譯,處理低階儲存器,產生少量的機器碼以及不需要任何執行環境的支援便能執行的程式語言。
型別位元組大小
char
1short
2int
4long
4long long
8float
4double
8定義變數型別+變數名
例如:int age = 150;
變數分類
全域性變數 區域性變數
注意:當全域性變數和區域性變數名字相同時,以區域性變數優先。
變數的作用域
1.區域性變數的作用域是變數所在的區域性範圍;
2.全域性變數的作用域是整個工程。
生命週期
(變數的生命週期指變數的建立到變數的銷毀之間的乙個時間段)
1.區域性變數的生命週期是進入作用域生命週期開始,出作用域生命週期結束。
2.全域性變數的生命週期是整個程式的生命週期。
常量
1.字面常量
2.const修飾的常變數
3.#define定義的識別符號常量
4.列舉常量
const float pai = 3.14f;
pai = 5.14;
上述中因為pai 是被const修飾的,所以pai 的最終結果還是3.14f,不受後面一步影響。
enum ***
;
上述中enum 為定義列舉常量的關鍵字,大括號內的極為列舉常量。(若未給其賦值,則從第乙個開始預設為0,其他依次加一)
字串
定義 由雙引號引起來的一串字元(字串的結束標誌是\0的轉義字元,在計算字串長度的時候,不算做字串內容。)
如上圖,第二種結果是由於c的後面沒有值,而遇到\0才結束,所以計算機就給了隨機值。
轉義字元\?
在書寫多個問號時使用,防止被解析成三字母詞
\』用於表示字元常量『
\"用於表示乙個字串內部的雙引號––
\\用於表示乙個反斜槓,防止他被解釋為乙個轉義序列符
\a警號字元,蜂鳴
\n換行
\b退格符
\f進紙符
\r回車
\t水平製表符
\v垂直製表符
\ddd
ddd表示1~3個八進位制的數字。如:\130x
\xdd
dd表示2個十六進製制數字。如\x300
之所以為14,就是因為轉義字元,乙個轉義字元算乙個。
注釋
1。不需要的**可以刪除,也可以注釋;
2.**中有些難懂的**,可以注釋文字。
注釋風格
1.c語言注釋風格:/***xx/
缺陷:不能巢狀注釋
2.c++注釋風格:
//******
可以注釋一行,也可以多行。
1.if
;else
;1.while語句
2.for語句
3.do…while語句
int add(int x, int y)
如圖,括號裡為引數,這是乙個求和函式,可以在主函式中進行呼叫,函式返回值的型別和函式名前的型別相對應。
int arr[10] = ;
定義乙個整型陣列,最多放10個元素,而且其下標是從0開始的,及arr[0]=1;
算術操作符
+,-,*,/,%
移位操作符
>>,<<
位操作符
&,^賦值操作符
=,+=,-=,*=,/=,&=,<<=,>>=
單目操作符
!,+,-,~,++,–
關係操作符
>,>=,
邏輯操作符
&&條件操作符
exp1?exp2:exp3
逗號表示式
exp1,exp2,exp3…expn
下標引用,函式呼叫和結構成員
,(),->,.
**1.移位操作符移的是二進位制數的位置,例如:int a=8;int b=a>>1;則b=4;由…1000變為…0100。
2.位操作符用於二進位制數的運算
&為有0則為0,都為1才為1;
^為相同為0,相異為1;
|為有1為1 ,都為0才為0.
auto,break,case,char,const,continue,default,do,double,else…
1.關鍵字typedef是型別定義,型別重新命名
例如typedef unsigned int uint_32,則uint_32也是乙個型別名。
2.關鍵字static用來修飾變數和函式
變為靜態區域性變數,靜態全域性變數,靜態函式
修飾區域性變數
上述兩種**可知,static修飾區域性變數改變了生命週期,讓靜態區域性變數出了作用域依然存在,到程式結束。
修飾全域性變數
全域性變數被static修飾時,使得這個全域性變數只能在本原始檔內使用,不能在其他原始檔裡使用。
修飾函式
乙個函式被修飾,使得這個函式只能在本原始檔內使用,不能在其他原始檔內使用。
記憶體
是電腦上重要的儲存器,計算機中所有的程式執行都是在記憶體中進行的。
所以為了有效使用記憶體,就把記憶體劃分為乙個個小的記憶體單元,每個記憶體單元的大小為1個位元組。
為了能有效的訪問到每個記憶體單元,就給記憶體進行了編號,這些編號被稱為記憶體單元的位址。
記憶體分為棧區,堆區,靜態區
棧區主要有區域性變數,形式引數,
堆區主要有動態記憶體分配,malloc,realloc,calloc,free
靜態區主要有全域性變數和靜態變數。
int num = 10;
int* p; //p為乙個整型指標變數
p = # //p中存放的是num的位址
*p = 10; //*p相當於num
指標變數的大小指標大小在32位平台是4個位元組,在64位中是8個位元組。
struct stu
;
struct 為結構體關鍵字,上述括號內為結構體成員。
結構體初始化
struct stu s = ;
訪問結構體成員時,可以s.name。
也可以定義乙個結構體指標如struct stu *ps=&s;
則有ps->name;
初識C語言
一 計算機工作原理 處理單元 cpu 計算 處理程式 隨機訪問儲存器 ram 臨時儲存檔案和程式 硬碟 永久儲存器 等等。二 c語言程式設計七步 1 定義程式設計目標 2 設計程式 3 寫程式源 4 執行程式 5 編譯 6 除錯和測試 7 維護和修改。三 編譯器的任務 將源 編譯形成機器語言 四 鏈...
初識C語言
佔位符 d f c lf s ld 位操作符 轉義符 n r f ddd xhh 操作符 指令系統的每一條指令都有乙個操作符,它表示該指令應進行什麼性質的操作。字元的輸入輸出 getchar putchar 資料的格式化輸入輸出 scanf printf 的作用 表示該符號之前的內容已經結束。簡單的...
初識 C 語言
1.c 語言的起源 1972年,貝爾實驗室的丹尼斯 里奇 dennis ritch 和肯 湯普遜 ken thompson 在開發 unix 作業系統時設計了 c 語言。c 語言不完全是里奇的突發奇想而來,他是在 b 語言 湯普遜發明 的基礎上進行設計。至於 b 語言的起源,那是另乙個故事。c 語言...