Programming in C

Day1

Q1: C程序的編譯運(yùn)行過(guò)程

頁(yè)數(shù) p8

Q2: 浮點(diǎn)型的差異表示

p27
計(jì)算機(jī)對(duì)浮點(diǎn)數(shù)的輸出結(jié)果取決于計(jì)算機(jī)內(nèi)部所采用表示浮點(diǎn)數(shù)的格式,由于計(jì)算機(jī)存儲(chǔ)精度有限,無(wú)法表示完全表示浮點(diǎn)書(shū)的小數(shù)部分.

其他

程序與算法的概念

程序: 解決某具體問(wèn)題的計(jì)算機(jī)指令集合.
算法: 解決某具體問(wèn)題的方法.

浮點(diǎn)數(shù)的除法

C語(yǔ)言中整數(shù)與整數(shù)相除得到剔除余數(shù)后的浮點(diǎn)數(shù),但整數(shù)與浮點(diǎn)數(shù)相除可以得到完整的小數(shù).

Day2

Q1: C數(shù)組的創(chuàng)建和訪問(wèn)

聲明
type name[capacity]
聲明并初始化
type name[capacity] = {.....}
訪問(wèn)
type variable = name[index]
通常使用for/while循環(huán)進(jìn)行遍歷數(shù)組

結(jié)構(gòu)設(shè)想圖

C Array.png

Q2: 聲明變量時(shí)的const修飾詞有什么作用?

p111
const修飾詞對(duì)程序運(yùn)行期間不會(huì)發(fā)生變化的變量進(jìn)行標(biāo)記,來(lái)告訴編譯器在編譯過(guò)程中將該變量分配在只讀內(nèi)存中,不允許修改,只能訪問(wèn)原來(lái)的值.

Q3: static 修飾變量時(shí)有什么作用

p156
將變量明確為靜態(tài)變量,執(zhí)行過(guò)程中只會(huì)初始化一次(程序開(kāi)始時(shí)優(yōu)先初始化),并且不會(huì)隨著函數(shù)的調(diào)用和退出發(fā)生變化,值保留為上一次所使用的結(jié)果.

Other

條件操作符

條件操作符即三目操作符的從右向左的關(guān)聯(lián)規(guī)則
e1 ? e2 : e3 ? e4 : e5
編譯結(jié)果為
e1 ? e2 : (e3 ? e4 : e5)

C語(yǔ)言的if-else判斷規(guī)則

所有非零表示滿足條件,零為不滿足條件

Day3

Q1: 如何理解遞歸解決問(wèn)題

p159
將一個(gè)問(wèn)題用?同樣的步驟分解成越來(lái)越小的問(wèn)題子集,最終得出答案.
常見(jiàn)應(yīng)用場(chǎng)景就是多層嵌套括號(hào)的表達(dá)式求值, 樹(shù)和表的搜索和排序.
理解自己調(diào)用自己的過(guò)程也可以看做自己調(diào)用了另外一個(gè)等待返回結(jié)構(gòu)的函數(shù)

Q2: 結(jié)構(gòu)體的初始化和使用

// 先聲明后定義
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}

結(jié)構(gòu)體語(yǔ)法
// 訪問(wèn)結(jié)構(gòu)體內(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'}

使用注意

  1. \0 為null字符即空字符,用于讓編譯器識(shí)別字符串的末尾位置,默認(rèn)存在每個(gè)字符串的最后.
  2. 需要訪問(wèn)字符串中末位有效字符時(shí),要將字符傳長(zhǎng)度-1作為索引值

其他

C函數(shù)

  • 在不顯示寫(xiě)明返回類(lèi)型的情況下, C函數(shù)的默認(rèn)返回Int類(lèi)型結(jié)果,函數(shù)若無(wú)返回最好給函數(shù)寫(xiě)明返回類(lèi)型為Void
  • 結(jié)構(gòu)體作為函數(shù)參數(shù)進(jìn)行傳遞時(shí),此采用值拷貝傳遞,新拷貝的結(jié)構(gòu)體值得變化不會(huì)影響原來(lái)的結(jié)構(gòu)體
  • 數(shù)組作為函數(shù)參數(shù)進(jìn)行傳遞時(shí), 所發(fā)生拷貝傳遞的是數(shù)組所在的內(nèi)存地址,傳遞后對(duì)形參數(shù)組的任何操作,實(shí)際上就是對(duì)原數(shù)組的操作.

Day4

Q1: 怎么理解和使用指針

聲明
type * pointer
指針相關(guān)運(yùn)算符
*指針運(yùn)算符 : * p 表示對(duì)指針變量的值進(jìn)行訪問(wèn);
&地址運(yùn)算符 : &variable 表示對(duì)該變量所在內(nèi)存地址進(jìn)行訪問(wèn);

指針變量與內(nèi)存地址關(guān)系圖

保存內(nèi)存地址的指針

const修飾指針變量

  • const type *point = variable: "point指向一個(gè)某類(lèi)型的常量" 表示point所指向的variable值不可變, 允許指向其他地址.
  • type * const point = variable: "point是一個(gè)指向某類(lèi)型的指針常量" 表示point所指向的地址不可變, 此寫(xiě)法更加常用.

函數(shù)指針
表示?指向某一函數(shù)的指針,必須表明函數(shù)的返回值,函數(shù)的參數(shù):
returnType (* point)(type args...) 由于運(yùn)算符優(yōu)先級(jí),中間括號(hào)不能省略.

指針與數(shù)組

C語(yǔ)言默認(rèn)將沒(méi)有下標(biāo)的數(shù)組名作為指向數(shù)組的指針,并且指向數(shù)組的第一個(gè)元素,除此之外 數(shù)組元素的另外種方法獲取*(?value + i) 等價(jià)于 value[i];

表示數(shù)組的指針.png

Day5

Q1: 預(yù)處理宏和條件編譯的使用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 指針是C語(yǔ)言中廣泛使用的一種數(shù)據(jù)類(lèi)型。 運(yùn)用指針編程是C語(yǔ)言最主要的風(fēng)格之一。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu); ...
    朱森閱讀 3,624評(píng)論 3 44
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,698評(píng)論 1 51
  • 故事總有很多版本,有人講的引人入勝,有人講的平淡無(wú)奇。人生,從出生到死亡,有開(kāi)場(chǎng)有謝幕,本是一個(gè)完整的故事...
    郴潔閱讀 854評(píng)論 0 3
  • 2017年2月5日。初九。和桐桐爸爸帶著兩個(gè)寶寶開(kāi)車(chē)回到武威爺爺家。桐桐橙橙在車(chē)上相對(duì)都比較乖,居然安安穩(wěn)穩(wěn)沒(méi)有哭...
    wan_嘉城顏顏閱讀 337評(píng)論 0 1
  • 我是來(lái)自無(wú)天邊的牢籠的一個(gè)囚徒, 那是一個(gè)極美的地方 因?yàn)樗拿利悾?我不忍心沖破, 可是, 這么美的地方, 怎么...
    魂歸瀟湘閱讀 239評(píng)論 0 1

友情鏈接更多精彩內(nèi)容