課堂筆記 C語言基礎與提高1

2021-08-15 01:13:54 字數 2006 閱讀 5536

c語言基礎與提高

基本資料型別的位元組

整型 int 4個位元組

單精度浮點型float 4個位元組

雙精度浮點型 double 8個位元組

字元型char 1個位元組

長整型 long 4個位元組 8個位元組(64位)

短整型 short 2個位元組

sizeof() 不是函式,是乙個運算子

例1:下面這段**的結果是什麼?

int main()

chara[1000];

inti;

for(i= 0; i < 1000; i++)

a[i]= -1-i;

printf(「%d\n」,strlen(a));

return0;

分析:char 的位元組長度為8,最小負數為 1000 0000,為-128

a[0]=-1, a[1]=-2, … a[127]=-128

a[128]=-129,超出了char所能表示的最小負數,所以a[128] != -129,

-129的原碼:1 1000 0001,假設能儲存於記憶體中,則以補碼儲存。

-129的補碼:1 0111 1111,事實上最高位的1無法儲存,故記憶體中儲存的資料為:

0111 1111,即127的補碼,故a[128] = 127。

a[129]=-130,同理,輸出的實際值 a[129]=126

故有a[255]=0.

而函式strlen()遇到字元『\0』就會停止,輸出計數的值為255。(從i=0,計數到i=254,共計255個)

例2:inti = -20;

unsignedint j = 10;

i+ j = ?

分析:i是有符號整型,j是無符號整型,

i中-20的原碼:00000000 00000000 00000000 10010100

i中-20的補碼:11111111 11111111 11111111 11101100

j中10的原碼:00000000 00000000 00000000 00001010

j中10的補碼:00000000 00000000 00000000 00001010

兩者補碼之和:11111111 11111111 11111111 11110110

值為:4294967286

const 修飾乙個唯讀變數,不能通過變數的值去修改對應記憶體中的資料,但是可以通過位址(指標)去修改。

volatile 防止編譯時被優化,針對硬體程式設計時。

字串預設含有\0

字串用「」包住

「a」也是乙個字串,等價於「a\0」

強制型別轉換 :(型別)表示式

條件運算子 max = (a > b) ? a : b;

運算子的優先順序可以使用()來解決。

逗號運算子:連線兩個表示式

自增、自減運算

例:

int a =4

(1)、a+=a++;

(2)、a+=++a;

(3)、++a+=a;

(4)、++a+=a++;

(5)、++a+=++a;

答:(1)       a = a + a++ = 8

a++;

a=9;

(2)       a = a + ++a = 10

(3)       ++a;

a = a + a = 10;

(4)       ++a;

a = a + a =10

a++;

a=11

(5)       12

switch語句

例:簡單的計算器

1#include

2 3int main()

4 20

21    return 0;

22 }

課堂筆記 C語言基礎與提高2

陣列 int a 10 表示定義了乙個整型陣列,陣列名為a,有10個元素。a 0 a 9 從低位址到高位址。一維陣列的初始化 int a 4 也可以給部分賦值,只要對其中乙個元素賦過值,其他未賦值的元素為0,如果都不賦值,則各元素的值為隨機值。a 和 a,a即是陣列名也是位址 a 與 a的值相同,意...

課堂筆記 C語言基礎與提高3

指標 1 定義與作用 指標是變數的一種,裡面是位址,通過位址找到要找的資料。單元的位址就是指標的內容 2 指標運算子 是取位址的運算子,是表示指標運算子 例 int p1,a p1 a p1 3 1.定義時表示的是指標變數。2.使用時表示取值。例 利用指標運算實現strcpy include inc...

C語言基礎與提高1(一)

一 基本資料型別 1.整型 int 整數,4個位元組,在tc環境中為2個位元組 signed int 最小值為 10000000 00000000 00000000 00000000 2.單精度實型float 單精度浮點數,4個位元組,精度6位 3。雙精度實型double 雙精度浮點數,8個位元組,...