關(guān)注+星標公眾號,不錯過精彩內(nèi)容
編排 | strongerHuang
微信公眾號?|?嵌入式專欄
程序員都知道,也都會使用printf函數(shù),但你知道它也有“安全隱患”嗎?
下面就來舉例我說說:
嵌入式專欄
打印輸出的數(shù)據(jù)并不是理論值,如下圖(右邊):
嵌入式專欄
請細致注意看下面代碼,有如以下奇怪的現(xiàn)象:
int a=5;floatx=a; //這里轉(zhuǎn)換是沒有問題的。%f打印x是 5.000000printf("%d\n",a);printf("%f\n",a); //輸出為什么是0.000000?-----問題1printf("%f\n",x);printf("%d\n",x); //輸出為什么是0?-----問題2printf("%f,%f\n",a,x); //輸出都是0.000000 為什么? ----問題3printf("%f,%f\n",x,a); //調(diào)換一下a,x的順序,正常了,為什么?----問題4printf("%d,%f\n",a,x);getchar();return0;
嵌入式專欄
char string[]="Hello World!";printf("String: %s ,強行再讀一次: %#p\n", string);printf("String: %s ,強行再讀一次: %#s\n", string);
String:Hello World! , 強行再讀一次: 0X001C1073String: Hello World! ,強行再讀一次: 閮
嵌入式專欄
問題1:printf("%f\n",a) 輸出為什么是0.000000?
后臺回復(fù)『嵌入式C語言』閱讀更多相關(guān)文章。
點擊“閱讀原文”查看更多分享,歡迎點分享、收藏、點贊、在看。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!





