C語言必掌握知識點
個人總結,學c的趕快看
1….++a 和 a++ 的區別:
++a 先加在賦值 a++ 先賦值在加 後者賦給變量b的值為a而不是a+1後的值
2….按位與 同為1時為1,其他為0 如: 1110 & 1010 =1010
按位或 同為0時為0,其他為1 如:1110 | 1010 =1110
3…. ~:非運算 按位取反 如: ~1111 = 0000
4…. 按位異或 相同位數字不同為1 相同為0 如:1010 ^ 0110 =110
左移一位相當於成乘上2
5….條件為一個范圍時 (表達式 與、或 表達式)
scanf時,變量前加&符號 switch裡面為表達式,case後為冒號;碰到break終止 continue 只結束本次循環
6…. 條件運算符 ? a>b ? a:b 真為前者 假為後者
7….求兩個數的最大公約數和最小公倍數
用歐幾裡德算法(輾轉相除法)求兩個數的最大公約數的步驟如下:
先用大的一個數除以小的一個數,得第一個余數;
再用小的一個數除以第一個余數,得第二個余數;又用第一個余數除以第二個余數,得第三個余數;這樣逐次用後一個數去除前一個余數,直到余數是0為止。那麼,最後一個除數就是所求的最大公約數(如果最後的除數是1,那麼原來的兩個數是互質數)。
例如求1515和600的最大公約數,
第一次:用1515除以600,商2余315;
第二次:用600除以315,商1余285;
第三次:用315除以285,商1余30;
第四次:用285除以30,商9余15;
第五次:用30除以15,商2余0。
1515和600的最大公約數是15。
兩個正整數的最小公倍數=兩個數的乘積÷兩個數的最大公約數
8…產生隨機數
arr[i]=10+rand()%90 表示產生10到100的隨機數
9….所謂“水仙花數”是指一個三位數,其各位數字立方和等於該數
本身。例如:153是一個“水仙花數”,因為153=1的三次方+5的三次方+3的三次方。
10…字符串不知道長度的時候 for ( ; arr[i] ;)
11….定義一個20個元素的數組,要求范圍在x=30--y=70之間(用隨機數) 如:循環體內: a[i] = arc4random()%41+30 ----------------> arc4random()%(y-x+1)+x
12…冒泡排序 // n個元素 比較n-1趟
vc8gIC8vxL+1xLSuICDUtLSuCjxicj4KCjxicj4KCiBjaGFyIHN0cltdID0gew=="o','k'}
char str[] = "ok"
區別:
第二個隱含一個結束符 " \0 '
14..//字符數組的初始化,最容易理解的方式就是逐個字符賦給數組中各元素
char str[10]={'I','','a','m','h','a','p','p','y'};
15…
//只要不遇到回車,就一直取輸入的字符
char a = 0;
while ((a = getchar()) != '\n') {
printf("a = %c\n", a);
}