Day1
Q1: C程序的編譯運行過程
Q2: 浮點型的差異表示
p27
計算機對浮點數(shù)的輸出結果取決于計算機內(nèi)部所采用表示浮點數(shù)的格式,由于計算機存儲精度有限,無法表示完全表示浮點書的小數(shù)部分.
其他
程序與算法的概念
程序: 解決某具體問題的計算機指令集合.
算法: 解決某具體問題的方法.
浮點數(shù)的除法
C語言中整數(shù)與整數(shù)相除得到剔除余數(shù)后的浮點數(shù),但整數(shù)與浮點數(shù)相除可以得到完整的小數(shù).
Day2
Q1: C數(shù)組的創(chuàng)建和訪問
聲明
type name[capacity]
聲明并初始化
type name[capacity] = {.....}
訪問
type variable = name[index]
通常使用for/while循環(huán)進行遍歷數(shù)組
結構設想圖
Q2: 聲明變量時的const修飾詞有什么作用?
p111
const修飾詞對程序運行期間不會發(fā)生變化的變量進行標記,來告訴編譯器在編譯過程中將該變量分配在只讀內(nèi)存中,不允許修改,只能訪問原來的值.
Q3: static 修飾變量時有什么作用
p156
將變量明確為靜態(tài)變量,執(zhí)行過程中只會初始化一次(程序開始時優(yōu)先初始化),并且不會隨著函數(shù)的調用和退出發(fā)生變化,值保留為上一次所使用的結果.
Other
條件操作符
條件操作符即三目操作符的從右向左的關聯(lián)規(guī)則
e1 ? e2 : e3 ? e4 : e5
編譯結果為
e1 ? e2 : (e3 ? e4 : e5)
C語言的if-else判斷規(guī)則
所有非零表示滿足條件,零為不滿足條件
Day3
Q1: 如何理解遞歸解決問題
p159
將一個問題用?同樣的步驟分解成越來越小的問題子集,最終得出答案.
常見應用場景就是多層嵌套括號的表達式求值, 樹和表的搜索和排序.
理解自己調用自己的過程也可以看做自己調用了另外一個等待返回結構的函數(shù)
Q2: 結構體的初始化和使用
// 先聲明后定義
struct Name {
type a,
type b,
type c
}
struct Name struct1;
struct Name struct2;
// 聲明并定義
struct Name {
type a,
type b,
type c
} struct1,struct2 = {value1, value2, value 3}
結構體語法
// 訪問結構體內(nèi)部成員值
struct1.a
//快速賦值
struct1 = { .a =value1, .b = value2, .c = value3}
或
struct1 = (struct Name) {value1, value2, value3}
Q3: 字符串創(chuàng)建使用
創(chuàng)建方式
1- char name[] = "abc....."
2- char name[] = {'a', 'b', 'c', ..... '\0'}
使用注意
- \0 為null字符即空字符,用于讓編譯器識別字符串的末尾位置,默認存在每個字符串的最后.
- 需要訪問字符串中末位有效字符時,要將字符傳長度-1作為索引值
其他
C函數(shù)
- 在不顯示寫明返回類型的情況下, C函數(shù)的默認返回
Int
類型結果,函數(shù)若無返回最好給函數(shù)寫明返回類型為Void
- 結構體作為函數(shù)參數(shù)進行傳遞時,此采用值拷貝傳遞,新拷貝的結構體值得變化不會影響原來的結構體
- 數(shù)組作為函數(shù)參數(shù)進行傳遞時, 所發(fā)生拷貝傳遞的是數(shù)組所在的內(nèi)存地址,傳遞后對形參數(shù)組的任何操作,實際上就是對原數(shù)組的操作.
Day4
Q1: 怎么理解和使用指針
聲明
type * pointer
指針相關運算符
*
指針運算符 : * p
表示對指針變量的值進行訪問;
&
地址運算符 : &variable
表示對該變量所在內(nèi)存地址進行訪問;
指針變量與內(nèi)存地址關系圖
const修飾指針變量
-
const type *point = variable
: "point指向一個某類型的常量" 表示point所指向的variable值不可變, 允許指向其他地址. -
type * const point = variable
: "point是一個指向某類型的指針常量" 表示point所指向的地址不可變, 此寫法更加常用.
函數(shù)指針
表示?指向某一函數(shù)的指針,必須表明函數(shù)的返回值,函數(shù)的參數(shù):
returnType (* point)(type args...)
由于運算符優(yōu)先級,中間括號不能省略.
指針與數(shù)組
C語言默認將沒有下標的數(shù)組名作為指向數(shù)組的指針,并且指向數(shù)組的第一個元素,除此之外 數(shù)組元素的另外種方法獲取
*(?value + i) 等價于 value[i]
;