C語言複習筆記

2021-10-03 18:53:24 字數 1815 閱讀 3428

前言:本篇是個人複習基礎知識過程中遇到一些容易混淆的點在此記錄,如有錯誤請指正。

(int)9在的原碼為:| 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 |-9的補碼為| 1 | 1 | 1 | 0 | 0 | 1 | 1| 1| + 1 = | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 |

比如**

int x , y , z ;
一般來說編譯器會把這三個變數分配到一段連續的記憶體裡。但是可能會被編譯器優化。

看下面的例子:

#include int main(void)

執行結果如下所示

如果加上volitale關鍵字則不會被編譯器優化了。

#include

int main(void)

#include int main(void)

; int *p = (int *)(&a + 1);

int *q = (int *)(*(a + 1));

printf("%d, %d\r\n", *(p - 1), *(q - 1));

}

執行結果如下:

這裡需要清楚幾個概念:

在乙個函式內部,可以再復合語句中定義變數,這些變數只在本復合語句中有效,這種復合語句也稱為「分程式」或「程式塊」。

#incude int main(void)

}

上例程式中變數a只在中間的符合語句塊內有效。

這裡只討論對整數2n次方的取模和除法。

整數對2n次方的除法。

22 / 8 = 2

可以看到10110右移3位即為10

結論:乙個整數除以2n次方等於這個數右移n位。同理,乙個整數乘以2n次方等於這個數左移n位。整數對2n次方的取模。

22 % 8 =22 - (22 / 8) * 8 = 6:

22 / 8 = 2,2的二進位制為10,乘以23次方是左移3位,所以是10000

22 - (22 / 8) *8 = 10110 - 10000 = 110 = 6

結論:乙個整數對2n次方取模為這個數取低n位的資料,如上22%8,22取低3位是6

C語言 C語言複習筆記

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

c語言複習筆記

指標部分 1.指標型別說明 main 2.指標加減運算說明 指標的加減運算 只能對陣列指標進行,其他型別的指標變數是無意義的 int pt pt pa 1 陣列後移一位 pt pa 1 陣列前移一位 pt pa pt pa pt pa pt pt 在陣列中!兩個指標變數可以相減,但不能相加!int ...

C語言複習筆記(三)

1 複習指標與陣列 參考2 選擇排序法講解 歸納 1 把0座標的元素與右邊最小的乙個元素交換,達到效果最小的放到0位置 2 把1座標的元素與右邊最小乙個元素交換,達到效果,第2小的放到1位置 3 把2座標的元素與右邊最小的乙個元素交換,達到效果,第3小的放到2位置 以此類推 3 氣泡排序 歸納 兩兩...