《Objective-C 編程》10.通過引用傳值

通過引用傳值:調(diào)用函數(shù)時(shí)傳入某個(gè)地址(也稱為引用)嘁酿,然后由函數(shù)將數(shù)據(jù)存入該地址指向的內(nèi)存留晚。

  • modf() 函數(shù):傳入一個(gè) double 類型的數(shù)據(jù),返回該浮點(diǎn)數(shù)的整數(shù)部分和小數(shù)部分乾蓬。調(diào)用該函數(shù)時(shí),需要傳入一個(gè)地址供 modf() 保存整數(shù)部分的計(jì)算結(jié)果壁榕。準(zhǔn)確的說矛紫,modf() 會(huì)返回小數(shù)部分,然后將整數(shù)部分拷貝至傳入的地址护桦。
#include <stdio.h>
#include <math.h>

int main(int argc, const char * argv[]) {
    
    double pi = 3.14;
    double integerPart;
    double fractionPart;
    
    // 將 integerPart 的地址作為實(shí)參傳入
    fractionPart = modf(pi, &integerPart);
    
    // 獲取integerPart地址上的值
    printf("integerPart = %.0f,factionPart = %.2f\n",integerPart,fractionPart);

    return 0;
}

輸出結(jié)果

integerPart = 3,factionPart = 0.14

編寫通過引用傳遞參數(shù)的函數(shù)

寫一個(gè)函數(shù)含衔,將公制單位米轉(zhuǎn)化為非公制單位的英尺和英寸。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

/**
將公制單位米轉(zhuǎn)換為非公制單位英寸和英尺

@param meters 輸入?yún)?shù):米
@param ftPtr 英尺的地址
@param inPtr 英寸的地址
*/
void metersToFeetAndInches(double meters,unsigned int *ftPtr,double *inPtr) {
   //這個(gè)函數(shù)假定 meters 的值是非負(fù)數(shù)
   
   //將meters變量的值轉(zhuǎn)化為feet的值二庵,類型為浮點(diǎn)數(shù)贪染。
   double rawFeet = meters * 3.281;
   
   //計(jì)算類型為無符號(hào)的整形feet變量的值
   //floor():向下取整
   unsigned int feet = (unsigned int)floor(rawFeet);
       
   //將feet變量的值存儲(chǔ)在提供的地址里
   if (ftPtr) {  //ftPtr != NULL
       printf("Storing %u to the address %p\n",feet,ftPtr);
       *ftPtr = feet;
   }

   //計(jì)算英寸
   double fractionalFoot = rawFeet - feet;
   double inches = fractionalFoot * 12.0;
   
   //將inches變量的值保存到傳入的地址
   if (inPtr) {
       printf("Stroing %.2f to the address %p\n",inches,inPtr);
       *inPtr = inches;
   }
}

int main(int argc, const char * argv[]) {
   
   double meters = 3.0;
   unsigned int feet;
   double inches;
   
   metersToFeetAndInches(meters, &feet, &inches);
   printf("%.1f meters is equal to %d feet and %.1f inches.\n",meters,feet,inches);
   
   /*  有時(shí)我們只需要獲取返回值的一部分時(shí),比如我只需要獲得英寸inch的數(shù)據(jù)催享,而不需要獲得英尺feet的數(shù)據(jù)杭隙;
       通常的做法是將 NULL 作為地址傳入函數(shù),表示“無須傳回相應(yīng)的值”因妙。
       所以痰憎,metersToFeetAndInches函數(shù)中會(huì)有 if 條件表達(dá)式判斷是否為空指針。
   */
   metersToFeetAndInches(meters, NULL, &inches);
   printf("%.1f meters is equal to %.1f inches.\n",meters,inches);
   
   return 0;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末攀涵,一起剝皮案震驚了整個(gè)濱河市铣耘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌以故,老刑警劉巖蜗细,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異怒详,居然都是意外死亡炉媒,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門昆烁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吊骤,“玉大人,你說我怎么就攤上這事静尼“追郏” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵鼠渺,是天一觀的道長蜗元。 經(jīng)常有香客問我,道長系冗,這世上最難降的妖魔是什么奕扣? 我笑而不...
    開封第一講書人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮掌敬,結(jié)果婚禮上惯豆,老公的妹妹穿的比我還像新娘池磁。我一直安慰自己,他們只是感情好楷兽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開白布地熄。 她就那樣靜靜地躺著,像睡著了一般芯杀。 火紅的嫁衣襯著肌膚如雪端考。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評(píng)論 1 305
  • 那天揭厚,我揣著相機(jī)與錄音却特,去河邊找鬼。 笑死筛圆,一個(gè)胖子當(dāng)著我的面吹牛裂明,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播太援,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼闽晦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了提岔?” 一聲冷哼從身側(cè)響起仙蛉,我...
    開封第一講書人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎碱蒙,沒想到半個(gè)月后荠瘪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡振亮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年巧还,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鞭莽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坊秸。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖澎怒,靈堂內(nèi)的尸體忽然破棺而出褒搔,到底是詐尸還是另有隱情,我是刑警寧澤喷面,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布星瘾,位于F島的核電站,受9級(jí)特大地震影響惧辈,放射性物質(zhì)發(fā)生泄漏琳状。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一盒齿、第九天 我趴在偏房一處隱蔽的房頂上張望念逞。 院中可真熱鬧困食,春花似錦、人聲如沸翎承。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叨咖。三九已至瘩例,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間甸各,已是汗流浹背垛贤。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留痴晦,地道東北人南吮。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像誊酌,于是被迫代替她去往敵國和親部凑。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

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

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,237評(píng)論 0 4
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,519評(píng)論 1 51
  • 生命里皆無常碧浊,當(dāng)我們能夠真正認(rèn)識(shí)無常涂邀,那么我們的心性便可打開。不受“執(zhí)著”的干擾箱锐,用無常的心態(tài)面對隨時(shí)而來的問...
    yyy1727閱讀 112評(píng)論 0 0
  • 刺痛的生命 那一刻 我悄悄地走進(jìn)黑森林 沒有驚擾那寂靜的空氣 赤裸著 經(jīng)過著 相依著 這一切發(fā)生 在伴有陣陣疼痛的...
    阿列布閱讀 187評(píng)論 0 0
  • 校區(qū):科學(xué)創(chuàng)想樂高機(jī)器人和平校區(qū) 時(shí)間:周日9:00-10:00 學(xué)員:王前森比勉,張?jiān)婈?任教老師:楊玲 教學(xué)目標(biāo):...
    Happy00閱讀 142評(píng)論 0 0