1.自定義資料型別(typedef)
c語言提供了乙個叫typedef的功能來宣告乙個已有的資料型別的新名字。
例如: typedef int length;
使得length成為int型別的別名。這樣length這個名字就可以代替int出現在變數定義和引數宣告的地方了:
length a,b,len;
length numbers[10];
typedef
int length;
//length就等價於int型別
typedef
*char[10
]string;
//strings是10個字串的陣列型別
typedef
struct nodeanode;
//或typedef
struct node anode;
//這樣用anode就可以代替struct dode
union的用處
儲存
初始化
#include
typedef
union
chi;
intmain
(int argc,
char
const
*ar**)
printf
("\n");
return0;
}
1.全域性變數初始化
2.被隱藏的全域性變數
如果函式內部存在與全域性變數同名的變數,則全域性變數被隱藏。
二、靜態本地變數1.*返回指標的函式1.#define
#define《名字》《值》
2.巨集
3.沒有值的巨集
#define_debug
這類巨集是用於條件編譯的,後面有其他的編譯預處理指令來檢查這個巨集是否已經被定義過
4.預定義的巨集
#include
intmain
(int argc,
char
const
*ar**)
*#define cube(x)((x)*(x) (x))
巨集可以帶引數
1.帶引數的巨集的原則
2.帶引數的巨集在dev c++中新建乙個專案,然後把幾個源**檔案加進去。對於專案,dev c++的編譯會把乙個專案中所有的源**檔案都編譯後鏈結起來。有的ide有分開的編譯和構建兩個按鈕,前者是對單個源**檔案編譯,後者是對整個專案做鏈結。
編譯單元
乙個.c檔案是乙個編譯單元
編譯器每次編譯只處理乙個編譯單元
把函式原型放到乙個標頭檔案(以.h結尾)中,在需要呼叫這個函式的源**檔案(.c檔案)中#include這個標頭檔案,就能讓編譯器在編譯的時候知道函式的原型。在使用和定義這個函式的地方都應該#include這個標頭檔案,一般的做法是任何.c都有對應的同名.h,把所有對外公開的函式的原型和全域性變數的宣告都放進去。
1.#include
2.不對外公開的函式1.變數的宣告1.printf %[flags] [width] [.prec] [hll] type
flag含義-
左對齊+
在前面放+或-
(space)
正數留空
00填充
width或prec
含義number
最小字元數
*下乙個引數是字元數
.number
小數點後的位數
.*下乙個引數是小數點後的位數
型別修飾
含義hh
單個位元組
hshort
llong
lllong long
llong double
type
用於type
用於i或d
intg
float
uunsigned int
gfloat
o八進位制
a或a十六進製制浮點
x十六進製制
cchar
x字母大寫的十六進製制
s字串
f或ffloat,6p指標
e或e指數
n讀入或寫入的個數
2.scanf:%[flag]type
flag
含義flag含義*
跳過llong,double
數字最大字元數
lllong long
hhchar
llong double
hshort
type
用於type用於d
ints
字串(單詞)
i整數,可能為十六進製制或八進位制
[…]所允許的字元
uunsigned intp指標
o八進位制
x十六進製制
a,e,f,g
float
cchar
1.file
2.fopen
r開啟唯讀
r+開啟讀寫,從檔案頭開始
w開啟只寫,如果不存在則新建,如果存在則清空
w+開啟讀寫,如果不存在則新建,如果存在則清空
a開啟追加,如果不存在則新建,如果存在則從檔案尾開始
…x只新建,如果檔案已存在則不能開啟
而二進位制檔案是需要專門的程式來讀寫的檔案
文字檔案的輸入輸出是格式化,可能經過轉碼
1.文字與二進位制
2.程式需要檔案的原因
資料 **
現實是程式通過第三方庫來讀寫檔案,很少直接讀寫二進位制檔案
不知道說點啥
在準備考研,用的參考書 演算法與資料結構考研試題精析 第三版,上面有362道演算法分析題,用部落格的方法記錄思想和相關 因為有點懶,所以用這個方法督促自己每天看幾道演算法設計題,寫出來的東西自己掌握的應該差不多了。刪除了自己之前的一些部落格,因為這些部落格自己都看不下去。今天離考研還有93天,因為一...
不知道你想表達啥
轉眼間,又是二月的最後一天,馬上又到三月份了,我發現自己2020年寫的部落格基本是以轉眼間開頭 哭笑 回想自己的2020其實自己做的很平庸,沒有突破,反而養成了很多小毛病,比如懶惰 拖延 上進心不足等,以上的這樣足以摧毀我的2020。2021我要從每件小事情做起,做對長遠有意義的事情,比如運動 看書...
C語言的第不知道多少天
今天在學習指標,也不知道之後能走到 順帶一提,教程也是借來的,也差不多到還回去的時間了。現在倒是看到很多推薦教材 像是什麼k r啊,明解c語言啊之類的 但也不知道該選什麼比較好。自學總是感覺少了點什麼,但也不知道少在 同學多在玩遊戲,也不知道後路在 時不時逃避下現實世界。但我也不知道我是不是在逃避,...