文章目錄
- 進度:32 / 224
- 一、C語言概述:13/224
-
- 1. 簡潔的C語言
- 2. Hello world
- 3. system函數
- 4. C程式編譯步驟
- 5. 連結
- 二、資料類型:29/224
-
- 1. 總述
- 2. 常量定義&進制
- 3. 資料類型大小
- 4. 字元&小數
- 5. 類型限定符&字元串常量
- 三、運算符與表達式:32/224
-
- 1. 運算符類型
- 2. 運算符優先級
業餘程式員、半吊子程式員和科班最大的差別是什麼?我想答案是 基礎 。
項目 決定 能力 , 基礎 決定 潛力 。
進度:32 / 224
一、C語言概述:13/224
1. 簡潔的C語言
- 32個關鍵字
C語言 #Day1 #概述 #資料類型 #運算符&表達式進度:32 / 224一、C語言概述:13/224二、資料類型:29/224三、運算符與表達式:32/224 - 9種控制語句
C語言 #Day1 #概述 #資料類型 #運算符&表達式進度:32 / 224一、C語言概述:13/224二、資料類型:29/224三、運算符與表達式:32/224 - 34種運算符
C語言 #Day1 #概述 #資料類型 #運算符&表達式進度:32 / 224一、C語言概述:13/224二、資料類型:29/224三、運算符與表達式:32/224
2. Hello world
程式:33.c
編譯成 t33:
結果:
3. system函數
函數說明:
程式:34.c
編譯成 t34:
結果:
補充:
- 把可執行檔案放在
檔案中,就可以全局使用
bin
- system(“ls -a”)有傳回值,可拿
int
類型變量接收。
看下面代碼:(紅色為改動部分)
![]()
C語言 #Day1 #概述 #資料類型 #運算符&表達式進度:32 / 224一、C語言概述:13/224二、資料類型:29/224三、運算符與表達式:32/224 ![]()
C語言 #Day1 #概述 #資料類型 #運算符&表達式進度:32 / 224一、C語言概述:13/224二、資料類型:29/224三、運算符與表達式:32/224
4. C程式編譯步驟
gcc選項 | 含義 |
---|---|
-o file | 指定生成的檔案名為 |
-E | 隻進行預處理 |
-S | 隻進行預處理和編譯 |
-c | 隻進行預處理、編譯和彙編 |
- 預處理: 宏定義展開、頭檔案展開、條件編譯等。删除注釋,但并不檢查文法。
檔案 --> 預處理檔案
- 編譯: 檢查文法,編譯生成彙編檔案。
預處理檔案 --> 彙編檔案
- 彙編:
彙編檔案 --> 二進制檔案
- 連結: 把各種庫連結到最終的可執行程式中
原代碼:37.c
- 預處理:37.i
C語言 #Day1 #概述 #資料類型 #運算符&表達式進度:32 / 224一、C語言概述:13/224二、資料類型:29/224三、運算符與表達式:32/224 C語言 #Day1 #概述 #資料類型 #運算符&表達式進度:32 / 224一、C語言概述:13/224二、資料類型:29/224三、運算符與表達式:32/224 C語言 #Day1 #概述 #資料類型 #運算符&表達式進度:32 / 224一、C語言概述:13/224二、資料類型:29/224三、運算符與表達式:32/224 - 編譯:37.s
C語言 #Day1 #概述 #資料類型 #運算符&表達式進度:32 / 224一、C語言概述:13/224二、資料類型:29/224三、運算符與表達式:32/224 C語言 #Day1 #概述 #資料類型 #運算符&表達式進度:32 / 224一、C語言概述:13/224二、資料類型:29/224三、運算符與表達式:32/224 - 彙編:37.o
C語言 #Day1 #概述 #資料類型 #運算符&表達式進度:32 / 224一、C語言概述:13/224二、資料類型:29/224三、運算符與表達式:32/224 C語言 #Day1 #概述 #資料類型 #運算符&表達式進度:32 / 224一、C語言概述:13/224二、資料類型:29/224三、運算符與表達式:32/224 - 連結:t37_elf
C語言 #Day1 #概述 #資料類型 #運算符&表達式進度:32 / 224一、C語言概述:13/224二、資料類型:29/224三、運算符與表達式:32/224 C語言 #Day1 #概述 #資料類型 #運算符&表達式進度:32 / 224一、C語言概述:13/224二、資料類型:29/224三、運算符與表達式:32/224
可執行檔案會被切割,然後放進記憶體不同的區域
記憶體四區:
- 代碼區
- 資料區
- 棧區
- 堆區
不僅記憶體有堆棧,一般每個程式也會有獨立的堆棧。
5. 連結
檢視程式所需依賴庫:
Windows
使用
Depends.exe
軟體檢視
Linux
使用
ldd 可執行檔案
MacOS
使用
otool -L 可執行檔案
C嵌入彙編語言:
二、資料類型:29/224
1. 總述
再回顧一下32個關鍵字:
資料類型關鍵字分類:
注意: 變量名又稱為【辨別符】
2. 常量定義&進制
- 方式1:
const 資料類型 常量名 = 常量值
- 方式2【宏定義方式】:
(這種方法下,資料類型會自動配置設定)#define 常量名 常量值
補充:
- 常量名,又稱為隻讀變量
- 常量名,一般全部大寫
注意:
應該使用方式2,方式1是不安全的,可以通過指針修改
// 二進制:以0b/0B開頭。 【注意】标準的c不包含二進制的寫法,是部分編譯器擴充的文法
int a = 0b10;
// 八進制:以0開頭
int b = 010;
// 十進制
int c = 10
// 十六進制:以0x/0X開頭
int d = 0xA0
補充:
按十進制輸出的占位符。
%d
按八進制輸出的占位符。
%o
按十六進制輸出的占位符,會顯示小寫。
%x
按十六進制輸出的占位符,會顯示大寫。
%x
![]()
C語言 #Day1 #概述 #資料類型 #運算符&表達式進度:32 / 224一、C語言概述:13/224二、資料類型:29/224三、運算符與表達式:32/224
3. 資料類型大小
- 資料在計算機中主要以補碼的方式存儲
- 一個記憶體單元是
,也就是8b
。1B
-
:擷取變量所占記憶體大小(機關B)。(傳回值是sizeof()
類型的)unsigned int
以下不是絕對,和機器環境有關
類型1 | 類型2 | 關鍵字 | 大小(位元組數) |
---|---|---|---|
基本類型 | 整型 | short | 2 |
int | 4 | ||
long | 8 | ||
long long | 8 | ||
實型(浮點型) | float | 4 | |
Double | 8 | ||
字元型 | char | 1 | |
指針類型 | pointer | 8 |
注意:
- 大資料給小資料,會溢出。小資料給大資料會自動轉換類型。
- 定義資料時,若沒指定
,預設省略了
unsigned無符号
signed有符号
4. 字元&小數
輸出字元:
-
列印字元%c
-
相當于printf("%c", a)
putchar(a)
-
相當于'A'
,說明傳遞的參數是字元的65
值(單引号起到了轉化的作用)ASCII
輸入字元:
-
,不止可以接收scanf("%c", &變量名)
型資料char
-
char 變量名 = getchar()
預設保留6位小數。
%f
意思是保留兩位小數。
%.2f
表示保留兩位整型。在小數點前的這種表示法對
%2.d
是無效果的
%f
可以用科學計數法指派
float a = 3.2e3f; // 3.3*10^3
float b = 5.7e-3f; // 5.7*10^(-3)
5. 類型限定符&字元串常量
類型限定符:
字元串就是一段連續的
char
空間 ,以數字0結尾
編譯器會在字元串結尾添加結束标志位 \0
三、運算符與表達式:32/224
1. 運算符類型
注意:運算符隻要得出的不是0,在
sizeof
中都屬于真值
c