技術部新人學習task1

2021-09-28 12:30:38 字數 3644 閱讀 7430

unicode和utf-8編碼23

45struct

typedef67

1.基本型別:是算術型別,包括整數型別和浮點型別。

2.列舉型別:它們也是算術型別,被用來定義在程式中只能賦予其一定的離散整數值的變數。

3.void型別:表示沒有可用的值。

4.派生型別:它們包括:指標型別、陣列型別、結構型別、共用體型別和函式型別。

強制型別轉換:

(型別說明符)(表示式)

如(int)(x+y).

基本型別

(windows系統 32位和64位相同)

型別儲存大小

值範圍char

1位元組-128 到 127 或 0 到 255

int4位元組

-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647

short

2位元組-32,768 到 32,767

long

4位元組-2,147,483,648 到 2,147,483,647

long long

8位元組-2^63 到 2^63 - 1

float

4位元組1.2e-38 到 3.4e+38(6位小數)

double

8位元組2.3e-308 到 1.7e+308(15位小數)

可以用sizeof() 函式來獲取每種基本型別的位元組大小。

void型別

指向void的指標可以轉換為任何資料型別。

char型別與ascii碼之間的關係

大多數時候都是查表,小寫字母是數字+64,大寫字母是+96。

unicode為每個字元設定了統一且唯一的二進位制編碼。(通常由兩個位元組組成,部分極生僻字元四個位元組)。而為了傳輸英文本元的效率,出現了utf-8編碼。其中英文本元的編碼與ascii編碼相同。

在計算機記憶體中,統一使用unicode編碼,當需要儲存到硬碟或者需要傳輸的時候,就轉換為utf-8編碼。

printf後面不加取址符,而scanf語句則需要取址符。

型別說明符

型別說明符意義d

十進位制帶符號整數

o八進位制無符號整數

x十六進製制無符號整數

u十進位制無符號整數

f小數形式輸出單雙精度實數

e指數形式輸出單雙精度實數

c輸出單個字元

p輸出指標位址

sprintf

原型:

int sprintf(char *buffer, const char *format, [argument]…)
其中:buffer為char型別的指標,指向待處理的字串;

format:這是字串,包含了要被寫入到字串 str 的文字。它可以包含嵌入的 format 標籤,format 標籤可被隨後的附加引數中指定的值替換,並按需求進行格式化。 (c語言菜鳥教程)

```cpp

#includeint main()

輸出:helloworld

sscanf

也和字串處理有關,先碼乙個傳送門:關於sscanf的介紹。

乙個完整的if-else結構由乙個if,乙個else和 0到多個else if組成,這些語句的判斷條件共同組成乙個全集。當然,也可以只寫if,不考慮其它的情況。

語法格式:

switch

(integerexpression)

執行時,integerexpression中的值與case中的進行多次比較,如果相等,便執行所對應**塊中的語句。若無相等情況出現,則進入default分支(與else類似)。

條件較多且多為相等關係時,考慮switch-case,除此之外,if-else用的更多。

while迴圈:符合判斷語句的情況下,一直執行迴圈體的內容,直到不符合判斷語句或break。

do-while迴圈:和while差不多,區別在於判斷語句在後面,判斷前先執行了一遍迴圈體。

for(語句1;語句2;語句3)

執行順序:

第一次迴圈:1->2->4->3;

第二次及以後:2->4->3.

int a[3]

=;char b[3]

=;char

*c="abcde"

;//全部初始化成0或-1可用memset

int d[99]

;memset

(d,0

,sizeof

(d))

;

int a[3]

[3]=

,,};

char

*b[3]=

;

全域性變數

定義在所有函式外的變數,作用域為全部函式。

區域性變數

定義在函式或結構化語句內部,作用域為當前函式或當前大括號中。

///用結構體儲存所給同學的姓名和gpa

struct student

intmain()

其實關於結構體以及相關排序,p1068 分數線劃定是一道很好的模板題,可以通過它來熟悉相關操作。

作用主要為定義自己習慣的資料名稱,如結構體,陣列,變數型別等,使用示例如下:

//更改陣列名稱

typedef

int int_array_100[

100]

; int_array_100 arr;

//更改結構體名稱

typedef

struct tagpoint

point;

point opoint1;

定義乙個函式需要確定三部分內容:

函式名稱

函式返回值 如果沒有返回值,則為void。

函式引數

分為形參和實參兩種:

當我們呼叫函式時,對其傳入的引數和函式體內接收到的引數其實並不是同乙個變數。呼叫函式時向函式傳入的引數稱作實際引數,簡稱實參,而函式體內部用於接收外部呼叫時傳入的引數的引數稱為形式引數,簡稱形參。

注意:二維陣列做形參時可以省略第一維的大小,但第二維的不可省略。

void

matrixplus

(int m,

int n,

int a[

10])int

main()

關於指標,有位博主講的非常清晰透徹,放上鏈結

總的來說,指標存放了變數的儲存位址,如果把變數比作房間裡住的房客,那麼指標指向的就是房間的門牌號。

和&都是右結合的單目運算子,所以*(p+1)而非 *p+1。

//宣告乙個指標

int a;

char

*p=&a;

指標的加減表示儲存位置的前後移動.

int num[11]

;int

*p = num;

p =&num[0]

;

大體來說本次新人task的總結就是這麼多qaq,收穫很豐富的啦?

菜鳥學習TASK1

鴿子部第一次task當然不能鴿掉,但是進度很迷,所以打算先對照task把概要大概寫下,然後把發展方案寫下,然後再一點點完善細節。task 了解c語言的幾大資料型別 包括陣列與字串 了解ascii碼和char型別的關係,有興趣的可以進一步了解unicode。基礎資料型別 整型 短整型short,整型i...

陣列學習task1

1.利用動態陣列解決資料存放問題 編寫一段 要求輸入乙個整數n,用動態陣列a來存放2 n之間所有5或7的倍數,輸出該陣列。托普利茨矩陣問題 如果乙個矩陣的每一方向由左上到右下的對角線上具有相同元素,那麼這個矩陣是托普利茨矩陣。給定乙個m x n的矩陣,當且僅當它是托普利茨矩陣時返回true。def ...

python學習打卡 Task1

基礎知識 注釋模組 內建函式dir 及help pep8 在mac終端輸入python可進入cpython互動式直譯器,利用print函式向世界打招呼吧 print hello,world 執行結果 hello,world input函式用於接收使用者輸入,先將輸入儲存在變數中,然後列印這個變數 d...