可惡的C語言 不知道是啥

2021-10-24 22:03:09 字數 2872 閱讀 6959

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語言啊之類的 但也不知道該選什麼比較好。自學總是感覺少了點什麼,但也不知道少在 同學多在玩遊戲,也不知道後路在 時不時逃避下現實世界。但我也不知道我是不是在逃避,...