指针结构体函数-事实上能够这样具体理解
今天一大早登了下QQ空間,看到本科的一個學(xué)弟發(fā)表一篇日志。寫關(guān)于西電微軟俱樂部面試題的解答,寫的非常不
錯。
我也一下子起興了,由于我以前也是被指針困惑非常久。搞不清頭緒,本科到研究生。我也筆試面試不下二十次
了。每次面試的時候問到指針或者引用這個問題我總是答不完美。灰溜溜的感覺(我一個堂堂985的碩士研究生啊。這
種問題都答不出來感覺非常丟臉的。我的感受是這樣子的!)。。
。趁這個時候再又一次復(fù)習(xí)下指針,順便還有結(jié)構(gòu)體。函
數(shù)。
盡管我講的不是面面俱到。可是你看了絕對會受益!挺有趣的,不信你往下看。。。
首先,我想說的是這個面試題,實在不是必需這樣子出。
好了,咱們開始吧!
原題例如以下:
在這里我不依照順序,盡量讓大家理解。
這個并不恐怖,c、c++語言沒什么難的。進不進俱樂部、協(xié)會事實上意義真的
不大,重點在于自學(xué),在于你在大學(xué)干了什么。回歸正題。
我僅僅講3個東西。從難往簡單了講,3步你就懂
了。。!
!。
?
字 面意思最主要的英語,時間,你的時間。寶貴的時間。然后一個網(wǎng)址,前面是%d,它代表這個結(jié)果是一個十進制
整數(shù)的意思,后面有一個xdmstc.com就 是西電微軟俱樂部的意思。
而print是“輸出”的意思,也就是說。輸出的內(nèi)容就
是答案。后面的一堆代表著那%d,如今請你 先不要管他。這樣一來,答案就變成了:
?
“ ‘一個十進制數(shù)’.xdmstc.com”,也就是說。它是一個網(wǎng)址。
?
簡單說一下那個&和*是什么意思---------第一步開始。
?
我告訴你一個饅頭在一個鍋里,你就知道哪里能夠填飽肚子了對不正確?。你沿著我手指的方向去找那個鍋里的那個饅
頭。你就攻克了溫飽問題------這里我的手相當(dāng)于一個羅盤,一個指南針。告訴你饅頭的位置在哪里!
?
你猜對了!
這就是我要說的。那個指向鍋的手,叫做“指針”。你如今沒吃飽已經(jīng)餓暈了對不正確!所以你眼冒金星,所
以這里的符號就用一個星來“*”表示,總結(jié)出來就是:
?
“ 一個人的手 * 指向鍋的手 ”
?
這里面“一個人的手”是一個限定對吧?它不是一僅僅貓的,也不是一僅僅老鼠的。是一個人的,也就是指定了類型;后面
的“指向鍋的手”,告訴了大家那個地方能夠找到吃的!
總結(jié)起來就是:
?
“類型名 * 指針名”,我們給“*”起個名字,叫做“指針運算符”!
關(guān)于類型名什么意思,在后面我解釋!
。
?
而 那個鍋。就是有饅頭的“地址”,我們手機指南針校準時候都是繞“8”字形,所以我們用“ & ”符號,與饅頭合起來也就
是饅頭的地址啦。我們要取饅頭吃的--------所以這里我們管“&”叫做取地址運算符^_^。也就是 說,“&饅頭”就叫做饅頭
的地址。而饅頭,有可能是白饅頭。黑饅頭。花饅頭,是可變的。所以名字就叫作“變量名”。而&后面也就僅僅能跟著
變量名,總結(jié)起來就是:
?
“饅頭的地址 =&饅頭”
?
你顯然已經(jīng)意識到。手不能吃(當(dāng)然你沒事舔你的爪爪能充饑也好!),手指著的那個東西才干吃 !
所以運算符和指
針名合在一起才干代表那個饅頭!
!
!
?
就是說,那個地方里面的東西:“*指針名 = 饅頭”
?
所以,上面的類型名呢?不難理解。它就是代表著指針所指變量的類型!
嘿嘿嘿。
?
鍋呢?鍋也不能吃!(你鐵齒鋼牙除外。。
)鍋里的東西才干吃!它的意義是什么?他的意義是空間,代表著那個存
放變量的空間---------在那遙遠的地方。有一個存儲東西的鍋,它存著一個饅頭,一個引路者。用手指向那個饅頭,一
個孩子雙眼冒金星去拿走里面的饅頭。
。
。
。
?
所以。
?
要吃的東西 = 饅頭
?
*指針名 = 要吃的東西
?
*(&要吃的東西)= 饅頭
?
如今懂了吧?舉個真正的樣例:有變量a,那么&a就代表變量a的地址,p為指向位置(這里我們起一個專業(yè)名詞。叫
做存儲單元,),*p即為指針p所指的存儲單元的內(nèi)容。
?
難嗎?指針是什么,該死的符號是什么。地址是什么。大量的基礎(chǔ)的應(yīng)用。確實指針是個非常強大的內(nèi)容。可是這些是
最主要的,我們寫project的時候經(jīng)常常使用得到這些最主要的。而我講完了!
難嗎?第一步。最難的一部分。ok了!
?
繼續(xù)同學(xué)們。struct英文就是“結(jié)構(gòu)”的意思。這個都懂吧?!不懂沒關(guān)系。查字典就懂了!另外說一下,我這篇文章僅僅
能保證沒接觸代碼的學(xué)生能看懂,可是不能面面俱到,也不能深入。所以批評文章請走人,假設(shè)有寫錯的歡迎指正!
?
你 的班級有好多人。構(gòu)成了一個集體,大家各有分工。班長、團支書、副班長、副團支書、班長的秘書、副班長的秘
書。。。。。哈哈。總之結(jié)構(gòu)嚴謹,各有屬性,構(gòu)成了班級體-----------所以,簡稱“結(jié)構(gòu)體”。用struct表示,你班的同
學(xué)們呢?!就叫做結(jié)構(gòu)體的成員,班級把你們包裹住!就是說用大括號把你們這幫孩子封鎖到教室里給我好好上課!
而成員又有什么亂七八糟的職責(zé)呢?我說一下你就懂啦。
?
struct 班級a(比方我的班級體是021131班,那么這就是你的結(jié)構(gòu)體的名字!)
?
{
?
班長 張三;
?
團支書 李四;
?
};
?
那些所謂的職務(wù),就是結(jié)構(gòu)體成員變量的類型,這就是一個結(jié)構(gòu)體。
?
大家一定非常害怕高中那段日子:“張三,尼瑪?shù)某鰜?#xff01;
讓你在教室說話!。!
”對!老師指著你讓你出來,或者其它人
來班級找你指定你出來,班級那么多人怎么辦?叫你的名字唄。哈哈。
?
所 以,一種簡便的取出結(jié)構(gòu)體的成員的運算符誕生了--------"-> ",對,沒錯就是個箭頭。你是不是在想。這個跟剛才的
指針好像啊!
找一個人不一定非要用手指著呀!可是,你也意識到了,思想是一樣的,我找出那個人。把他叫出來,
任務(wù)完畢!
!
總結(jié)起來就是。用指針訪問結(jié)構(gòu)體的一個成員的方式:
?
指針名 -> 成員名
?
第二步ok。
?
好了!最后一個概念-----函數(shù)。
?
這個我都能夠不講了!你絕對能理解。
?
已知y = f(x),那么y就叫做x的函數(shù)。
?
對。就這樣,其它限制條件我不寫了,可是。事實上中心思想就這樣。
?
這里面,就是:
?
函數(shù)名字(里面的亂七八糟的東西)
?
ok!如今上面的程序依照原理來說,你能攻克了。
?
我知道你想問什么,那個tm_year什么鳥?!
?
就是這樣,今年。錯了,是3年里 ,我遇到的全部的新生,都沒有一個,沒有一個是我的那位傳說的學(xué)長的后塵。
?
“西電和成電哪個好”。“西電##專業(yè)怎么樣”,“軍訓(xùn)累不累”,“大一讓帶電腦么”,“西電(#專業(yè))排名多少”,“食堂好
吃么”。“宿舍條件怎么樣,熱水亂七八糟的 ”。“去市區(qū)是916么”,“開學(xué)的考試怎么回事”。。。無聊且無意義的問
題。
?
我想說的是,這樣的問題你不認為無聊嗎?。
你會說:“人家大一的,就這點問題被!能怎么樣?”
?
凡是問這樣問題的 ,最后沒有一個成為真正的牛人。凡是說大一的問這些問題不為過的人 。水平也不怎么樣。
?
為什么?
?
答案,憑什么 。這是大學(xué)教你的第一堂課:大學(xué)靠的是自學(xué),這些問題你網(wǎng)上都能查到!
都有答案!為什么還問?不
知者不為過,好吧!
你自己安慰你自己吧!
我在這里明白告訴你:你大學(xué)第一堂課的成績就是不及格!
?
你指望老師教你?手把手問你會不會?!
這是大學(xué)。假設(shè) 你還在跟我爭論這個問題。僅僅能說句,你好。菜鳥!
?
該告訴你的我都告訴你了。這個程序你還看不懂!
!
你能夠去死了。谷歌struct tm,對應(yīng)結(jié)果例如以下,就是說。這個是
人家偉大的微軟公司一驚做好了的,你就看著就能夠了:
?
標題,mumber,type,meaning。你哪個看不懂?
?
就是說,相應(yīng)的年份,減去1900,我已經(jīng)告訴你了!就是tm_year -1900以后的數(shù)
?
如今分析那個程序,一句一句來!
?
第一句,你就知道有這么個定義,接著有這么個東西precious_time即可了。
?
第二句。結(jié)構(gòu)體后面有個東西。是your_time,他是個啥啊?看上面的谷歌截圖。請與后面的東西關(guān)聯(lián)一下加深一下理
解。
第三句,一個函數(shù),括號中面的你們肯定懂。time微軟寫好的,字面意思,結(jié)果是系統(tǒng)時間!
?
第四句,又是一個函數(shù)!并且除了函數(shù)名不一樣,括號中面的東西與第三句全然一樣!此函數(shù)獲得的tm結(jié)構(gòu)體的日歷
時間。也是微軟寫好的。
?
第五句。相應(yīng)的年份 - 1900,然后再加上1900。今年是2014,最后輸出答案:2014.xdmstc.com。
?
就是說,有那么一個變量,叫做precious_time,有那么一個指針叫做your_time,電腦右下標的時間。今年是2014年。
?
我近期在弄論文。非常惡心。我寫這個不為別的,算是期間的小小歇息,也是個人看不慣仗著代碼來欺負新生的措施。
?
在這里順便告訴一下。真正的東西,使用心血換來的。事實上。真的能用代碼解決的問題,都不是問題。
最后,我強調(diào)一下。也算是給剛進入大學(xué)的大一新生們一個忠告:學(xué)習(xí)這個東西靠的是自覺、自學(xué),不要找理由這借口更不要不要騙自己了。懂就不用說。不懂不能裝懂,一定要去搞清楚。基礎(chǔ)非常重要。不然后面會非常麻煩(當(dāng)然,你以后不從事相關(guān)行業(yè)另當(dāng)別論。僅僅要你不是官二、富二XXX,那就還是乖乖地去學(xué)習(xí)!
),不要指望別人會手把手的去教會你什么,好好珍惜大學(xué)四年學(xué)習(xí)的時光吧。
總結(jié)
以上是生活随笔為你收集整理的指针结构体函数-事实上能够这样具体理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机程程序员英语,计算机程序员常用英语
- 下一篇: 微型计算机的主要硬件以及技术指标,微型计