在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

為何scanf函數的參數需要取地址?

學益得智能硬件 ? 來源:學益得智能硬件 ? 2024-04-26 17:38 ? 次閱讀

scanf后面的參數,為什么要加上取地址的符號? 一般學習C語言學到第二天的時候,很多同學都會有這樣的疑問。 這個問題等你學完了指針,應該就會很清晰。 scanf的作用是從標準輸入緩沖區獲得一個數據,放在對應的變量里面,假設我們獲取的是一個整數。 如果不取地址,寫法是這樣的:

scanf("%d", num);
num在這個地方叫做實參。 scanf的定義在C庫中,而且還涉及可變參數,我們把它簡化一下,假設函數的定義就是這樣:
int scanf(char *f, int n)
{
    // ...
}
這個地方的n叫做形參。 在內存里面,實參占 4 個字節,形參也占 4 個字節。 函數體里面要做的,就是從標準輸入讀取一個整數,放在 n 中。 那么問題來了,數據確實被放到了 n 里面,但是 num 沒有任何變化,回到函數調用的地方,num 并沒有變成我們想要的數據。 如果改成取地址,實參還是 num,但是形參變成了 num 的地址,指針 n 指向 num,在 scanf 函數里面,可以通過地址把獲取到的數據放到 num 中。
回到函數調用的地方,num確實被修改了。 所以我們使用 scanf 的使用,經常會見到取地址的符號,就是希望在函數內部修改實參的值。 最后,還得強調一下,并不是所有使用 scanf 的地方都要加上取地址符號,比如數組,數組名本身就是地址,也就沒有必要再對他做取地址的操作。

審核編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 參數
    +關注

    關注

    11

    文章

    1865

    瀏覽量

    32772
  • C語言
    +關注

    關注

    180

    文章

    7628

    瀏覽量

    139725
  • 函數
    +關注

    關注

    3

    文章

    4365

    瀏覽量

    63861

原文標題:scanf的參數為什么要取地址?

文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    四種獲取內核函數地址的方法

    在內核調試中,經常需要知道某個函數地址,或者根據函數地址找到對應的函數,從而進行更深一步的de
    的頭像 發表于 11-17 16:58 ?1497次閱讀
    四種獲取內核<b class='flag-5'>函數</b><b class='flag-5'>地址</b>的方法

    C語言scanf函數問題

    如圖所示,scanf()函數格式串中如果沒有逗號(%d%d%d),則顯示結果正常;但是加了逗號之后(%d,%d,%d)結果就不正常了,請問各位這是怎么回事?謝謝
    發表于 08-07 13:09

    scanf函數簡單問題討論

    );return 0;}但要注意:這個函數自動把你最后敲的回車轉換為字符'\0'。如果你的輸入超過了數組的大小,那么就會產生錯誤。3.scanf()函數參數輸入類型不匹配問題這是我在
    發表于 12-21 16:55

    scanf函數簡單問題討論和分享

    );return 0;}但要注意:這個函數自動把你最后敲的回車轉換為字符'\0'。如果你的輸入超過了數組的大小,那么就會產生錯誤。3.scanf()函數參數輸入類型不匹配問題這是我在
    發表于 12-29 18:26

    stm32編程中如何實現printf函數scanf函數

    stm32編程中如何實現printf函數scanf函數
    發表于 12-01 07:45

    如何去實現printf函數scanf函數重定向呢

    如何去實現printf函數重定向呢?如何去實現scanf函數重定向呢?
    發表于 12-14 06:42

    C語言入門教程-Scanf

    Scanf 使用scanf函數可以從標準輸入設備接受輸入。對我們而言,標準輸入設備一般就是鍵盤。雖然scanf函數可以做許多事情,但是除了
    發表于 07-29 10:44 ?1134次閱讀

    matlab函數命令代碼

    本內容介紹了matlab函數。在matlab中有四個函數具體:Matlab函數有:
    發表于 12-20 14:41 ?5006次閱讀

    C語言scanf函數詳解

    C語言scanf函數詳細解釋
    發表于 05-15 09:20 ?6次下載

    printf和scanf什么意思

    printf()函數是格式化輸出函數, 一般用于向標準輸出設備按規定格式輸出信息。scanf()是C語言中的一個輸入函數。與printf函數
    發表于 11-09 18:02 ?3.8w次閱讀
    printf和<b class='flag-5'>scanf</b>什么意思

    實現重定向printf()和scanf() 函數案例分析

    要想printf()和scanf() 函數工作,我們需要把printf()和scanf() 重新定向到串口中。重定向是指用戶可以自己重寫C 的庫函數
    發表于 06-23 08:26 ?9561次閱讀
    實現重定向printf()和<b class='flag-5'>scanf</b>() <b class='flag-5'>函數</b>案例分析

    C++:詳談地址操作符重載

    址操作符重載函數返回值為該類型的指針,無參數
    的頭像 發表于 06-29 11:59 ?3602次閱讀
    C++:詳談<b class='flag-5'>取</b><b class='flag-5'>地址</b>操作符重載

    C語言使用scanf函數的注意事項

    scanf函數中的格式控制后面應當是變量地址,而不是變量名。 * 如果在格式控制字符串中除了格式聲明以外還有其他字符,則在輸入數據時在對應的位置上應輸入這些字符相同的字符。
    的頭像 發表于 03-09 11:01 ?943次閱讀

    scanf在C語言中的作用

    至關重要。 scanf函數的基本語法是: ```c scanf("格式控制字符串", 變量2, ...); ``` 其中,"格式控制字符串"指定了輸入數據的類型和格式,變量1、變量2等是待存儲輸入數據的變量
    的頭像 發表于 11-23 14:13 ?1933次閱讀

    c語言scanf的正確使用及技巧

    函數的正確使用及一些技巧。 scanf函數的基本用法 scanf函數是通過格式控制字符串來確定輸入變量的類型和格式的。它的基本使用方法是,首
    的頭像 發表于 11-24 10:04 ?5740次閱讀
    主站蜘蛛池模板: 毛片免费网 | 天天操夜夜操狠狠操 | 免费看大黄| 亚洲黄网站wwwwww | 国产亚洲自在精品久久 | 亚洲色图21p | bt天堂在线最新版www | 亚洲综合色一区二区三区小说 | 国内精品视频 | 国产农村乱色xxxx | 欧美又黄又嫩大片a级 | 高清国产在线 | 99国产国人青青视频在线观看 | 美女又黄又免费的视频 | 天天操天天干天搞天天射 | 亚洲午夜视频在线观看 | 91视频观看 | 日本不卡视频免费 | 伊人久久大香线蕉综合电影 | 天天夜夜操 | 国产欧美久久久精品影院 | 很黄很污的视频网站 | 在线视频91| 日本偷偷操 | 欧美日韩精品乱国产538 | 欧美精品国产第一区二区 | www.色黄| 四虎.com| 私色综合网 | 182tv免费视视频线路一二三 | 91色多多| 亚洲欧美成人 | 在线观看视频一区 | 日本人六九视频69jzz免费 | 伊人毛片| 91久久精品青青草原伊人 | 成人欧美精品一区二区不卡 | 在线天堂中文在线网 | 欧美亚洲专区 | 国产成人久视频免费 | 中文字幕色婷婷在线精品中 |