C語言編程基礎(chǔ)及指針學(xué)習(xí)

C語言是面向過程的尝江,而C++是面向?qū)ο蟮?/b>

C和C++的區(qū)別:

C是一個結(jié)構(gòu)化語言跃捣,它的重點在于算法和數(shù)據(jù)結(jié)構(gòu)近顷。C程序的設(shè)計首要考慮的是如何通過一個過程,對輸入(或環(huán)境條件)進(jìn)行運(yùn)算處理得到輸出(或?qū)崿F(xiàn)過程(事務(wù))控制)久妆。

C++,首要考慮的是如何構(gòu)造一個對象模型跷睦,讓這個模型能夠契合與之對應(yīng)的問題域筷弦,這樣就可以通過獲取對象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過程(事務(wù))控制。 所以C與C++的最大區(qū)別在于它們的用于解決問題的思想方法不一樣抑诸。之所以說C++比C更先進(jìn)烂琴,是因為“ 設(shè)計這個概念已經(jīng)被融入到C++之中 ”。

C與C++的最大區(qū)別:在于它們的用于解決問題的思想方法不一樣蜕乡。之所以說C++比C更先進(jìn)奸绷,是因為“ 設(shè)計這個概念已經(jīng)被融入到C++之中 ”,而就語言本身而言层玲,在C中更多的是算法的概念号醉。那么是不是C就不重要了反症,錯!算法是程序設(shè)計的基礎(chǔ)畔派,好的設(shè)計如果沒有好的算法铅碍,一樣不行。而且线椰,“C加上好的設(shè)計”也能寫出非常好的東西胞谈。

我們知道 , Android系統(tǒng)是基于linux開發(fā) 憨愉, 采用的是linux內(nèi)核 烦绳, Android APP開發(fā)大部分也要和系統(tǒng)打交道 , 只是Android FrameWork 幫我們屏蔽了系統(tǒng)操作 莱衩, 我們從Android 系統(tǒng)的分成結(jié)構(gòu)可以看出 爵嗅, Android FrameWork是通過JNI與底層的C/C++庫交互 , 例如:FreeType 笨蚁,OpenGL 睹晒,SQLite , 音視頻等等 括细。

小編推薦一個學(xué)C語言/C++的學(xué)習(xí)裙【 六九九伪很,四七零腹忽,五九六 】景东,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)揍移!裙內(nèi)有開發(fā)工具览濒,很多干貨和技術(shù)資料分享呆盖!

Android_Framework.png

做Android為什么需要學(xué)習(xí)C/C++ ?

1. 企業(yè)需要 , 現(xiàn)在大部分招聘 贷笛, 基本上都會要求會JNI2. 進(jìn)階需要 应又, 如果想要研究Android源碼 , 那么不會C/C++ 乏苦, 行不通3. 音視頻時代到來 (直播) 株扛, 音視頻處理 , 很大部分都需要C/C++完成(音視頻編解碼)

那么下面就一起開始學(xué)習(xí)C吧 汇荐! let's go

C語言中的變量

編寫C的時候 , 首先我們需要引入頭文件 洞就, 就像我們寫JAVA的時候 , 需要引入包一樣 掀淘, 但C語言他不會幫你自動引入 旬蟋, 所有頭文件 , 必須你自己手動引入革娄, 最常用的兩個頭文件是

#include

C語言中的xxx.h的頭文件 咖为, 里面只有函數(shù)聲明 秕狰, 沒有函數(shù)實現(xiàn) , 函數(shù)實現(xiàn)都在xxx.c里面 躁染。

在學(xué)習(xí)一門語言的時候 鸣哀, 我們最先了解的就是變量 , 變量的定義 吞彤, 變量所占大小 我衬, 下面我們看看C語言中的變量類型 , 和變量大小 饰恕。 和JAVA不同的是 挠羔, C語言變量的大小 , 是隨著操作系統(tǒng)變化而變化的 埋嵌, 不同的操作系統(tǒng) 破加, 變量的大小可能不一樣 。

下面我們來查看C語言的變量類型和變量類型的大斜⑧隆:

void main() { int i = 90; printf("int 所占字節(jié):%d ", sizeof(int)); printf(" i 的值:%d ", i); short sh = 32; printf("short 所占字節(jié)數(shù):%d ", sizeof(short)); printf("sh 的值:%d ", sh); long l = 12312; printf("long 所占字節(jié)數(shù):%d ", sizeof(long)); printf("l 的值:%ld ", l); float f = 12.3; printf("float 所占字節(jié)數(shù):%d ", sizeof(float)); printf("f 的值:%f ", f); double d = 234.345; printf("double 所占字節(jié)數(shù):%d ", sizeof(double)); printf("d 的值:%lf ", d); char c = 'c'; printf("char 所占字節(jié)數(shù):%d ", sizeof(char)); printf("c 的值:%c ", c); // 輸出字符串

在使用

printf()

函數(shù)的時候 范舀, 需要標(biāo)明輸出數(shù)據(jù)的類型 , 例如:

int

類型是

%d

,

char

類型是

%c

,

表示換行 等等:

/*

小編推薦一個學(xué)C語言/C++的學(xué)習(xí)裙【 六九九了罪,四七零锭环,五九六 】,無論你是大牛還是小白泊藕,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)辅辩!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享娃圆!

C語言中的指針

C語言中最重要的 玫锋, 就是指針了 , 沒有指針 讼呢, 就沒有高級語言的那些強(qiáng)大的特性 撩鹿, 說到指針我們就會想到內(nèi)存操作 , 指針就是為了操作內(nèi)存而生 吝岭。

下面我們來看看 三痰, 指針的簡單使用:

// 定義一個變量i , i的值是100

指針存儲的是變量的內(nèi)存地址 , 也只能存儲內(nèi)存地址 吧寺, 直接賦值整數(shù)值也會被轉(zhuǎn)化成內(nèi)存地址

下面我們來看一個完整的例子:

void main() { // 定義一個變量i , i的值是100

如果使用的是Visual Studio開發(fā)工具 窜管, 可以在在代碼中打一個斷點,在菜單欄

調(diào)試->窗口->內(nèi)存->內(nèi)存1

, 將打印出的變量地址值 稚机, 在輸入欄中填入 幕帆, 按回車鍵進(jìn)行地址搜索 。如果是一堆問號或者亂碼 赖条, 則在該窗口點擊右鍵 失乾,在右鍵菜單中常熙, 選擇按照你打印的變量的進(jìn)制位顯示 , 例如int 就按4進(jìn)制位顯示 碱茁, 再在右鍵菜單欄中找到帶符號顯示 裸卫, 基本上就能看到變量的值了 。

上述的例子中 纽竣, 如果我們想修改i的值 墓贿, 除了給i直接賦值外 , 還可以通過指針來操作蜓氨,如下:

定義一個變量i , i的值是100

指針也是一個變量 聋袋, 如上

int* p = &i

, p就是一個指針變量 , 這個變量存儲的就是i變量的內(nèi)存地址 穴吹, 通過

printf("p的值:%#x ",p) printf("i的地址:%#x ",&i)

幽勒, 我們可以打印出指針變量p的值和i變量地址 , 可以看到兩個值是一致的 港令。 那么指針和普通變量有什么區(qū)別呢 啥容? 指針變量的強(qiáng)大之處就在于 , 他能通過內(nèi)存地址去操作對應(yīng)內(nèi)存地址的內(nèi)容 缠借。上述例子中

*p = 20

小編推薦一個學(xué)C語言/C++的學(xué)習(xí)裙【 六九九干毅,四七零,五九六 】泼返,無論你是大牛還是小白硝逢,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具绅喉,很多干貨和技術(shù)資料分享渠鸽!

, 就是操作i變量的地址 柴罐, 將i變量中的100修改為20 徽缚。

我們了解了指針的概念和基本使用 , 下次我們就要了解 革屠, 二級指針 凿试, 多級指針 , 函數(shù)指針 等等 似芝, 由此 那婉, 我們可以看出 , C語言的世界党瓮, 就是一個指針的世界 详炬, 就如同JAVA的世界 , 就是一個對象的世界一樣 寞奸, 兩者都是其各自的核心 呛谜, 所以我們一定要把指針弄懂 在跳, 學(xué)透 。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末隐岛,一起剝皮案震驚了整個濱河市猫妙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌聚凹,老刑警劉巖吐咳,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異元践,居然都是意外死亡韭脊,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門单旁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沪羔,“玉大人,你說我怎么就攤上這事象浑∧枋危” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵愉豺,是天一觀的道長篓吁。 經(jīng)常有香客問我,道長蚪拦,這世上最難降的妖魔是什么杖剪? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮驰贷,結(jié)果婚禮上盛嘿,老公的妹妹穿的比我還像新娘。我一直安慰自己括袒,他們只是感情好次兆,可當(dāng)我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著锹锰,像睡著了一般芥炭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上恃慧,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天园蝠,我揣著相機(jī)與錄音,去河邊找鬼糕伐。 笑死砰琢,一個胖子當(dāng)著我的面吹牛蘸嘶,可吹牛的內(nèi)容都是我干的良瞧。 我是一名探鬼主播陪汽,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼褥蚯!你這毒婦竟也來了挚冤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤赞庶,失蹤者是張志新(化名)和其女友劉穎训挡,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體歧强,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡澜薄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了摊册。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肤京。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖茅特,靈堂內(nèi)的尸體忽然破棺而出忘分,到底是詐尸還是另有隱情,我是刑警寧澤白修,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布妒峦,位于F島的核電站,受9級特大地震影響兵睛,放射性物質(zhì)發(fā)生泄漏肯骇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一祖很、第九天 我趴在偏房一處隱蔽的房頂上張望累盗。 院中可真熱鬧,春花似錦突琳、人聲如沸若债。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蠢琳。三九已至,卻和暖如春镜豹,著一層夾襖步出監(jiān)牢的瞬間傲须,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工趟脂, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留泰讽,地道東北人。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像已卸,于是被迫代替她去往敵國和親佛玄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容