C語言筆記

2021-10-05 09:03:46 字數 2750 閱讀 4569

1.轉義字元總結

\a                   響鈴

\b                   退格(將當前位置移到前一列)

\n                   換行

\r                    回車(將當前位置移到本行開頭)

\t                    水平製表(跳到下一tab位置)

\v                    垂直製表

\\                     代表乙個反斜線字元

\'                     代表乙個單引號

\"                     代表乙個雙引號

\0                     空字元

2.檔案讀寫函式總結

//以mode指定的方式開啟名為filename的檔案,成功則發揮檔案指標,否則返回0;

file * fopen(char * filename , char * mode);

//從fp所指檔案讀取長度為size的n個資料項,存到buf所指定的記憶體區;返回所讀資料項個數,若遇檔案結束或出錯則返回0;

int fread(char * buf , unsigned size , unsigned n , file * fp);

//將buf所指的n*size個位元組輸出到fp所指檔案中,返回fp所指檔案中的資料項個數;

int fwrite(char * buf , unsigned size , unsigned n , file * fp);

//關閉fp所指檔案,成功返回0,否則返回-1;

int fclose(file * fp);

3.從鍵盤讀入資料的另一種寫法

void get_file_name(char * file_name)
4.取整

#include //向下取整

double floor(double x);

//向上取整

double ceil(double x);

5.數學函式

在gcc下用到數學函式,如sqrt。在gcc時要加上 -lm 引數,這樣告訴編譯器我要用到數學函式了 。否則會報錯。

6.記憶體操作

#include //將指標變數s所指向的前n位元組的記憶體單元用乙個整數c替換

void *memset(void *s, int c, unsigned long n);

//將指標變數src所指向的前n位元組的記憶體單元的資料拷貝到dest所指向的前n位元組的記憶體單元

void *memcpy(void *dest, const void *src, size_t n);

//儲存區str1和儲存區str2的前n個位元組進行比較,str1小於str2返回-1

int memcmp(const void *str1, const void *str2, size_t n));

7.^運算子

由於其他語言的影響,總是在寫c**時用^進行冪運算,然而c語言下沒有冪運算子,^代表的是異或運算;但是math.h中有乙個pow函式可以進行冪運算。

#include //計算x的y次方

double pow(double x,double y);

8.字串轉換數字

#include //一般長度字串轉換為數字,int型即可

int atoi(char * str);

//過長字串轉換為數字,需要long型

long atol(char * str);

9.陣列的初始化

#include //初始化方式1

int a[5]=;

//a此時為全0的整數陣列

//初始化方式2

int a[5];

memset(a,0,5*sizeof(int));

10.執行緒操作函式

#include //執行緒建立

int pthread_create(pthread_t * tidp,const pthread_attr_t * attr,(void*)(*func)(void*),void *arg);

//執行緒掛起

int pthread_join(pthread_t th, void **thr_return);

//執行緒同步

//設定鎖

pthread_mutex_t mutex = pthread_mutex_initializer;

//加鎖

pthread_mutex_lock(&mutex);

//釋放鎖

pthread_mutex_unlock(&mutex);

多執行緒的程式在gcc下編譯時需要加上 -lpthread。

11.位運算子

& 按位與

| 按位或

^ 按位異或

~ 按位取反

<< 左移(右補0)

>> 右移(左補0)

C語言筆記(C )

結構體,類在定義時沒分配空間,用其定義變數時才會分配空間,所以c語言在的結構體不用有靜態型別,因為靜態型別在資料段,而如果在函式用用結構體定義變數,這變數在棧中,這樣就衝突了,但在c 中有相應的機制處理些問題。c 的cin.get 不讀取緩衝區中的回車字元,而cin.getline 將緩衝區中的回來...

C語言 C語言複習筆記

為什麼要學c語言?1972年,美國貝爾實驗室的 d.m.ritchie 在b語言的基礎上最終設計出了一種新的語言,他取了bcpl的第二個字母作為這種語言的名字,這就是c語言。總所周知,任何東西的盛行都只是乙個階段,語言也是如此。但是,c語言是個例外,乙個矗立了半個世紀的語言,其中好壞,我想應該不難了...

C語言筆記

1.換行問題導致與預期效果會不一樣 2.與 的錯誤,成功用 0來表示 3.編譯器分解符號按照從左到右分解 利用貪心演算法4.這樣也可以輸出。5.ga 與 ga 區別 ga 編譯器的處理會不一樣,vc 是後乙個覆蓋前乙個,從左向右 6.int p,a p的值為int,a的值為int,所以p為int指標...