一、C語言符號優先級
二、<ctype.h>頭文件經常使用函數:html
<ctype.h>頭文件是很經常使用的一個頭文件,其用來處理char類型數據,經常使用的有
tolower()轉化爲小寫,toupper()轉化爲大寫,isalpha()判斷是否爲字母,還有其餘以下表
三、位操做符web
其中~是一位運算符,其餘的爲兩位運算符,計算位數爲。
計算方法:&, |, ^按位列出,向高補齊,符號位也算在位計算中
~取反減一, << 乘以2,右補0,超出範圍後歸0, >>除以2,舍小數位,左補符號位,正數直到0,負數到-1。
四、隨機數ide
隨機數在<stdlib.h>頭文件中聲明,用函數rand()進行實現,值在0到RAND_MAX之間。
rand()須要一個種子來產生不一樣的序列,對於同一個種子所產生的序列是相同的,咱們能夠用srand()函數來設置種子值,種子的默認值是1,但種子值是由本身設定的話彷佛很難達到隨機數的效果,因此咱們通常用time函數。time函數在<time.h>中聲明,time函數通常須要一個參數,這裏咱們用NULL就好了。
隨機數通常使用:
srand(time(NULL));
int chosen = rand();
RAND_MAX的值至關的大,一般是int的最大值,因此咱們通常用%對齊進行範圍限定。
在[a,b)範圍內的隨機數:
rand()%(b-a)+a;
隨機數機制:
隨機數實際上就是按照必定規律的變更數字,其大體聲明以下:
static unsigned long next = 1;
/* RAND_MAX assumed to be 32767 */
int rand(void) {
next = next * 1103515245 + 12345;
return((unsigned)(next/65536) % 32768);
}
void srand(unsigned seed) {
next = seed;
}
不一樣的編譯器可能數字不同,但實現效果是相同的。
五、有關for循環函數
for(double a=0; a!=2; a+=0.2)這個循環可能會產生死循環,由於0.2沒有二進制的準確表示,因此a不可能獲得精確的2,若是改成0.25則可使循環停下。
6有關gotourl
goto語句並不經常使用,但其的方便性能夠超越任何的選擇循環語句,可是它也會使得程序變得更加複雜。咱們通常運用其來跳躍多重循環,或者進行函數跨越,提升程序的靈活性。spa
七、while和do-while3d
while是先判斷再執行,do-while是先執行再判斷,while能夠一次循環都不執行,而do-while至少執行一次循環,要注意do-while最後要加分號結束。htm
八、時間函數
時間函數主要包含在<time.h>之中,經常使用的有如下幾個函數:
time(NULL)是返回1970年至今的毫秒數,因此重疊的概率很小,通常用它做爲隨機數種子,但他返回的類型爲time_t,因此須要用(unsigned int)進行強制轉化。
clock()返回從程序啓動到如今的時間,這個能夠記錄程序所容許的時間,若是須要每隔一段時間作某事,能夠用一個變量now記錄上一個clock(),用循環
while(clock() - now < CLOCKS_PER_SEC);來處理間隔,固然這種作法很佔CPU啦,不提倡使用。
九、fflush()函數blog
fflush函數的意思是清除緩衝區的內容,其聲明在stdio.h頭文件中,若是你輸入一串的數據,則這些數據就會放在一個名叫stdin的標準輸入緩衝區中,直到你按回車鍵爲止。用fflush函數就能很好的把緩衝區內的東西清除掉,以避免影響後面的輸入輸出。使用方法fflush(stdin)。
十、輸入指定符ip
輸入指定符通常由%進行標準格式化,其形式通常以下:
還有相似於%[]和%[^]的指定符,%[]只能讀取[]所包含的字符,而%[^]爲當讀取到某些字符時中止。
例:%[abcde],則只能讀取abcde,遇到其餘符號則會退出輸入,其後面的內容不會存入後面的符號中。
好比輸入akjdba,則輸出只有a。
若是爲%[^abcde],則一旦輸入abcde中的一個則會退出,返回前面所獲得的字符串。
好比輸入gjsdgjfa,則只能獲得gjs。
十一、輸出指定符
輸出指定符通常也由%進行標準格式化,其形式通常以下: