C語言認識(一)

2021-09-30 16:52:49 字數 4723 閱讀 9302

a++和++a

if語句

練習這裡陳述c語言的入門筆記

在目前學習中,可以從基礎書籍入手。

作業系統:計算機的心智作業系統之哲學原理

計算機網路:謝希仁版的計算機網路

微機原理:清華大學出版的微機原理

資料結構

c語言屬於強型別語言,需要對變數先定義在賦值,一旦變數的型別確定那麼變數的型別將不在改變。

(1byte = 8bit;)

char, 佔1個位元組

short, 佔2個位元組

int;, 佔4個位元組

long, 佔4個位元組

long int, 佔4個位元組

long long, 佔8個位元組

float, 佔4個位元組

double, 佔8個位元組

long doubl, 佔8個位元組

bool, 佔1個位元組

int a = 10;

short b =12;

a = b;

a = (int)b;這裡b的型別不變,變得是數值的型別。

在這裡介紹: 2進製 8進製 10進製 16進製制

10進製 (119) =>> ( 01110111 ) 2進製

=>> ( 167 ) 8進製

=>> ( 77 ) 16進製制

在電腦的儲存中,資料是按照補碼形式儲存的。

char a = 5;

a = 5 // 0000 0101 =>>5; 整數的原始碼、反碼、補碼都是一樣的。

char b = -5;

b = -5 // 1000 0101 =>> -5 原始碼

// 1111 1010 =>> 反碼

// 1111 1011 =>> 補碼 // 0xfb 存放

在資料進行運算的時候必然會有資料的擴充或者截斷。

擴充的時候有符號的型別,如果符號位是 0 則全擴充套件為 0

如果符號位是 1 則全擴充為 1

擴充的時候無符號的型別,全擴充套件為 0

在計算機中存放的時候是根據小端存放存放,即高位存放高位址,低位存放低位址。

大端存放是指資料的高位元組,儲存在記憶體的低位址中,而資料的低位元組,儲存在記憶體的高位址中,這樣的儲存模式有點兒類似於把資料當作字串順序處理:位址由小向大增加,而資料從高位往低位放;

小端存放高位存放高位址,低位存放低位址。

取餘 % 只取決於被除數的正負;

而取整的正負取決於除數和被除數的正負,有乙個是負的輸出就是負的。

5%3=5-(5/3)*3=5-3=2

5%(-3)=5-(5/(-3))3=5-(-1)(-3)=2

-5%3=-5-(-5/3)*3=-5-(-1)*3=-2

//取整

int a =5;

int b =3;

printf

(" 5 / 3 = %d \n"

, a / b)

;//1

a =-5

; b =3;

printf

(" -5 / 3 = %d \n"

, a / b)

;//-1

a =-5

; b =-3

;printf

(" -5 / -3 = %d \n"

, a / b)

;//1

a =5;

b =-3

;printf

(" 5 / -3 = %d \n"

, a / b)

;//-1

//取餘

a =5;

b =3;

printf

(" 5 % 3 = %d \n"

, a % b)

;//2

a =-5

; b =3;

printf

(" -5 % 3 = %d \n"

, a % b)

;//-2

a =-5

; b =-3

;printf

(" -5 % -3 = %d \n"

, a % b)

;//-2

a =5;

b =-3

;printf

(" 5 % -3 = %d \n"

, a % b)

;//2

a++ 是先取a的值再就行+1賦值給a ;

++a 是先對a+1再把運算後的結果取出來。

int a =5;

int b =3;

++a = b;

printf

("a= %d"

,a);

//a= 3

a++= b;

//編譯錯誤

a++ = b;產生編譯錯誤,因為先將a取出來放在臨時空間內,當b賦值的時候是將b的值給了臨時空間,由於臨時空間唯讀不可取,所以產生編譯錯誤。

if(條件語句){}: 條件語句非真即假,只要為零就是假其餘都是真。

將 a b c 按從大到小排列

int a =5;

int b =3;

int c =7;

int d =0;

if(a > b)

if(b > c)

if(a > b)

printf

("a,b,c %d %d %d"

, a, b, c)

;//a,b,c 3 5 7

在不引入第三個變數的時候進行兩個值的交換。

//不引入第三個變數

int a =5;

int b =3;

a = a + b;

b = a - b;

a = a - b;

printf

("a,b,c %d,%d"

, a, b)

;//a,b 3 5

int rand_num =0;

//隨機數

int input_num =0;

int count =0;

bool _continue = true;

srand

(time

(null))

; rand_num =

rand()

%100

;printf

("num = %d"

, rand_num)

;while

(_continue)

if(input_num > rand_num)

if(input_num < rand_num)

}

int input =0;

printf

("請輸入年份: ");

scanf_s

("%d"

,&input);if

(input %4==

0&& input %

100!=

0|| input %

400==0)

else

//利用switch語句

int year =0;

int month =0;

int day =0;

int allday =0;

bool leap = false;

printf

("請輸入年月日:");

scanf_s

("%d %d %d"

,&year,

&month,

&day);if

(year %4==

0&& year %

100!=

0|| year %

400==0)

else

switch

(month )

if(leap)

else

}

//利用if語句和for迴圈語句

int year =0;

int month =0;

int day =0;

int sum =0;

bool leap = false;

printf

("請輸入年月日:");

scanf_s

("%d %d %d"

,&year,

&month,

&day);if

(year %4==

0&& year %

100!=

0|| year %

400==0)

else

for(

int i =

0; i < month; i++)if

(i ==

4|| i ==

6|| i ==

9|| i ==10)

if(i ==2)

else}}

if(leap)

else

}

認識C語言指標(一)

說到指標,就會出現一些複雜型別,如果對這些複雜型別不太了解,在用到指標有時就會比較懵。乙個型別裡面會有很多運算子,其優先順序和運算優先順序一樣,只需要遵循乙個原則 從變數名處起,根據運算子優先順序結合,一步一步分析 先來看看簡單的型別 int p 這是乙個普通的整型變數 int p 先從p處開始,先...

C程式設計(一) 認識C語言及導言

today begin my first blog for c c語言是一種通用的程式語言,它不受限於任何一種作業系統或機器,可移植性強。c語言中很多概念來自martin richards開發的bcpl語言。c語言是一種較為低階的語言,所以可能自己造輪子比較多 這也是c語言設計的初衷 能讓程式設計師...

帶你認識指標 C語言的靈魂(一)

最近複習考研的知識,有機會研究一下c語言的指標,今天就總結一下有時候讓我們愛的要死,有時候也恨得要死的指標,到底是什麼?書裡指標那章的序言說到了,不掌握指標就是沒有掌握c的精華,word指標看來真的有他的厲害之處啊。話不多說,開始總結。第一篇總結解決一下什麼是指標的問題,做了乙個小demo簡要說明指...