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

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

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

3天內(nèi)不再提示

使用printf函數(shù)的安全隱患

我快閉嘴 ? 來源:C語言學習聯(lián)盟 ? 作者:C語言學習聯(lián)盟 ? 2022-10-09 09:49 ? 次閱讀

程序員都知道,也都會使用printf函數(shù),但你知道它也有“安全隱患”嗎?

下面就來舉例我說說:

1問題描述

打印輸出的數(shù)據(jù)并不是理論值,如下圖(右邊):

2acc8ea2-3b2b-11ed-9e49-dac502259ad0.png

2進一步描述問題

請細致注意看下面代碼,有如以下奇怪的現(xiàn)象:

int a=5;floatx=a;     //這里轉(zhuǎn)換是沒有問題的。%f打印x是 5.000000
printf("%d
",a);printf("%f
",a);  //輸出為什么是0.000000?-----問題1printf("%f
",x);printf("%d
",x);  //輸出為什么是0?-----問題2printf("%f,%f
",a,x);  //輸出都是0.000000  為什么?   ----問題3printf("%f,%f
",x,a);  //調(diào)換一下a,x的順序,正常了,為什么?----問題4printf("%d,%f
",a,x);
getchar();return0;

這里有四個問題,下面會進行解答。

3printf()函數(shù)的原理解釋

明確這些問題首先須要明確printf()函數(shù)的工作原理

printf()維持了一個需要打印的變量棧,默認情況下,參數(shù)進棧的順序是由右向左的。因此,參數(shù)進棧以后的內(nèi)存模型例如以下圖所看到的:

2af733dc-3b2b-11ed-9e49-dac502259ad0.png

打印的時候,printf依照字符轉(zhuǎn)換說明符規(guī)定的格式從低地址開始提取數(shù)據(jù)。直到參數(shù)打印完。

比方遇到 %f 說明符就提取8個字節(jié)的數(shù)據(jù),遇到 %d 就提取4個字節(jié)。printf()事實上不知道參數(shù)的個數(shù),它僅僅會依據(jù)format中的打印格式的數(shù)目依次打印堆棧中參數(shù)format后面地址的內(nèi)容。

這樣一來,printf()事實上存在安全隱患:它會強行讀取內(nèi)存的數(shù)據(jù)當作正常數(shù)據(jù)輸出,沒有邊界檢測(非常有可能產(chǎn)生堆溢出)。

比如這種代碼:

char string[]="Hello World!";printf("String: %s  ,強行再讀一次: %#p
", string);printf("String: %s  ,強行再讀一次: %#s
", string);
輸出如下:

String:Hello World!  , 強行再讀一次: 0X001C1073 
String: Hello World!  ,強行再讀一次: 閮

4問題解釋

問題1:printf("%f ",a) 輸出為什么是0.000000?

答:%f 提取8字節(jié)。a僅僅有4字節(jié),提取出來的數(shù)占了float表示法的指數(shù)部分。尾數(shù)部分為0。所以終于是0

問題2:printf("%d ",x) 輸出為什么是0?

答:%d 提取4字節(jié),x有8字節(jié)。提取出來的數(shù)實際上是float表示法的指數(shù)部分(恰好是0),所以終于是0

問題3:printf("%f,%f ",a,x); 輸出都是0.000000 為什么?

答:參照問題1的解釋。提取了八字節(jié)后,后面的已經(jīng)亂了

問題4:printf("%f,%f ",x,a);調(diào)換一下a,x的順序,正常了,為什么?

答:這是正常的情況而已。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 函數(shù)
    +關注

    關注

    3

    文章

    4372

    瀏覽量

    64316
  • Printf
    +關注

    關注

    0

    文章

    84

    瀏覽量

    14131

原文標題:C語言printf()函數(shù)具體解釋和安全隱患

文章出處:【微信號:C語言學習聯(lián)盟,微信公眾號:C語言學習聯(lián)盟】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    盤點近來鋰電池的安全隱患事故

    鋰電池的安全隱患一直都有存在,從手機、筆記本到電動汽車,均有鋰電池發(fā)熱甚至起火的事件發(fā)生,并且這一現(xiàn)象不再只發(fā)生在山寨電子產(chǎn)品中,許多鋰電池的安全隱患事故,已經(jīng)牽扯到了諸如尼康、松下、三星、小米、聯(lián)想、特斯拉等國內(nèi)外的品牌公司。
    發(fā)表于 06-04 09:44 ?9015次閱讀

    網(wǎng)絡安全隱患的分析

    、管理網(wǎng)絡安全等方面。  物理網(wǎng)絡安全風險物理網(wǎng)絡安全的風險是多種多樣的。網(wǎng)絡的物理安全主要是指地震、水災、火災等環(huán)境事故,電源故障、人為操作失誤或錯誤,設備被盜、被毀,電磁干擾、線路
    發(fā)表于 10-25 10:21

    [分享] Ghost真的是存在很大的安全隱患

    ://www.pgos.cc 如果你說ghost win7這種操作系統(tǒng)存在很大的安全隱患,這就是錯誤的了,因為在實際之上這種操作系統(tǒng)是經(jīng)過了我們反復的測試了,需要知道的一點就是ghost操作系統(tǒng)開發(fā)社區(qū)可能是會在我們的系統(tǒng)之中加入一些自己喜歡的程序或者是功能,但是這些都是無害的,更何況我們也是可以自己實現(xiàn)卸載。
    發(fā)表于 01-16 14:28

    面粉灑到插排里 會不會有安全隱患

    不小心把面粉撒到插排里了 已經(jīng)清理完了 不知道還會不會有安全隱患
    發(fā)表于 07-10 13:36

    電氣安全隱患的監(jiān)控管理

    智慧安全用電監(jiān)控系統(tǒng)電壓、電流數(shù)據(jù)變化在線監(jiān)測單回路剩余電流、多回路剩余電流(漏電)在線監(jiān)測 導線銅排溫度在線監(jiān)測 故障電弧在線探測 消防設備電源狀態(tài)在線監(jiān)測。智慧式用電安全隱患監(jiān)管服務系統(tǒng)由用電
    發(fā)表于 08-22 10:49

    VR一體機家庭消防安全隱患排查內(nèi)容

    體驗過程中,用戶置身于“真實”的生活場景(如家庭、宿舍、辦公室等),通過系統(tǒng)提示學習消防隱患的科普知識,讓參與者進一步增強在日常生活中自覺地做好自家消防安全隱患排查工作,從而起到積極正面的教學目的
    發(fā)表于 09-10 17:31

    請問家里電路可以這樣設計嗎,有沒什么安全隱患

    那位老師傅可以幫小弟看下,家里電路這樣設計可否,有沒什么安全隱患。。主要是家里配電箱已經(jīng)固定,只有18個槽位、、
    發(fā)表于 04-03 13:37

    安全隱患檢測系統(tǒng)的設計與實現(xiàn)

    隨著網(wǎng)絡技術的迅速發(fā)展,網(wǎng)絡安全已經(jīng)成為人們關注的焦點。安全隱患檢測技術可以協(xié)助決策者及早發(fā)現(xiàn)網(wǎng)絡的脆弱性,防患于未然。文章描述了安全隱患檢測系統(tǒng)的原理和體
    發(fā)表于 06-15 11:01 ?13次下載

    RFID技術詳解與基于RFID的物聯(lián)網(wǎng)安全隱患的研究

    安全隱患的研究已經(jīng)成為一個迫在眉睫和廣為關注的問題。在此對RFID技術、RFID系統(tǒng)組戍、工作原理以及對基于RFID技術的物聯(lián)網(wǎng)構(gòu)成要素進行了分析;同時對造成物聯(lián)網(wǎng)潛在與安全隱患產(chǎn)生的主要原因、主要攻擊方式、安全策略進行了研究。
    發(fā)表于 10-25 11:08 ?10次下載

    指紋鎖的安全隱患_指紋鎖的優(yōu)缺點

    指紋鎖安全隱患有哪些?指紋門鎖安全隱患盤點。想要家里安全過得舒心,“門鎖”的重要性是擺在第一位。然而,現(xiàn)實生活中人們常常會面臨忘帶鑰匙的尷尬,因此鎖具廠商會尋求更便捷的開門方式,于是智能鎖在家庭市場熱了起來。指紋鎖是目前非常常見
    發(fā)表于 06-03 11:33 ?2.2w次閱讀

    關于那些智能電動汽車的安全隱患

    文章較長,分為三個大部分,按照安全隱患的感知程度分類。首先是駕駛員易于感知到的安全隱患,其次是駕駛員不易于感知的,最后再說對駕駛員而言透明的安全隱患。 駕駛員易于感知的安全隱患 1、“
    的頭像 發(fā)表于 01-14 10:13 ?5511次閱讀
    關于那些智能電動汽車的<b class='flag-5'>安全隱患</b>

    機房的安全隱患該如何消除

    機房的安全隱患--供電問題 雖然機房的電源問題眾所周知,但在實際工作中沒有得到足夠的重視,這種情況經(jīng)常發(fā)生。如果ups或ups電池在日常使用中損壞,如果發(fā)生電源故障,所有設備將立即停止,網(wǎng)絡設備
    發(fā)表于 01-19 09:57 ?886次閱讀

    如何預防電力故障及安全隱患

    電力故障和安全隱患一直是人們關注的熱點問題。在現(xiàn)代社會中,電力已經(jīng)成為人們生活和工作中不可或缺的一部分。然而,隨著電力設備的增加和用電負荷的增大,電力故障和安全隱患也隨之增加。那么如何預防電力故障及安全隱患呢?高壓電纜故障及
    的頭像 發(fā)表于 08-29 13:51 ?1291次閱讀

    無損檢測有哪些安全隱患

    無損檢測技術在航空、航天、核電、石油、化工、機械制造等領域具有重要應用。然而,由于操作不當、設備故障、環(huán)境因素等原因,無損檢測過程中可能存在安全隱患。本文將詳細分析無損檢測中的安全隱患,并提出相應
    的頭像 發(fā)表于 05-27 14:58 ?3085次閱讀

    直流充電樁使用中有哪些電氣安全隱患及解決方案

    充電樁。然而,在充電樁的日常使用中,一些潛在的安全隱患也逐漸浮出水面,這些隱患有可能對人們的生命與財產(chǎn)安全構(gòu)成嚴重威脅。因此,深刻認識并了解這些常見的充電樁安全隱患,以及如何通過嚴格的
    的頭像 發(fā)表于 10-30 15:22 ?962次閱讀
    直流充電樁使用中有哪些電氣<b class='flag-5'>安全隱患</b>及解決方案
    主站蜘蛛池模板: 一级毛片真人免费播放视频 | 丁香婷婷网| 欧美在线天堂 | 激情九月婷婷 | 1024手机在线看永久免费 | 久青草国产手机在线视频 | 免费人成网址在线观看国内 | 国产在线色视频 | 国产一区国产二区国产三区 | 四虎海外在线永久免费看 | 婷婷激情在线 | 免费人成年短视频在线观看免费网站 | 国产精品三级 | 三级完整在线观看高清视频 | 一级毛片视频在线 | 四虎海外在线永久免费看 | 看片地址 | 国产黄色高清视频 | 黄色www| 很黄很黄的网站免费的 | www.九色.com | 禁漫画羞羞动漫入口 | h视频在线观看免费网站 | 午夜色片 | 天天碰天天操 | 亚洲一区二区三区四 | 91亚洲国产成人久久精品网站 | 牛牛a级毛片在线播放 | 最近观看免费高清视频 | 欧美成人aaa大片 | 5月婷婷6月丁香 | 狠狠叉| 丁香六月婷婷七月激情 | 亚洲综合五月天欧美 | 99r8这里精品热视频免费看 | 国产高清在线播放免费观看 | 国产午夜一区二区在线观看 | 狠狠艹视频 | 日韩黄网| 午夜看大片 | 免费高清在线观看a网站 |