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指標...