標(biāo)題: 真假死循環(huán) [打印本頁]

作者: 51hei麗人    時間: 2016-6-20 23:12
標(biāo)題: 真假死循環(huán)
這有個簡單的小程序:

#include
<stdio.h> 
void main(void) { 
    int i, b[10]; 
    for (i=0;i<=10;i++) { 
        b[i] = 0; 
    }
}


對于這個程序,你認(rèn)為它的運(yùn)行結(jié)果是? (  )

A.一切正常  B.下標(biāo)越界  C.死循環(huán)




實(shí)際上,結(jié)果是“C”。納悶嗎?
原因是指針“i”在賦值為10時,由于超過了數(shù)組B的長度,于是指針繼續(xù)偏移向下一位。而這次賦值就不在數(shù)組B里面了,而是將“i”(因?yàn)閕在內(nèi)存中緊跟在數(shù)組之后)賦值為0 。。于是你看到了,它死機(jī)了。。
所以,很多時候,高級語言不一定能解決所有問題。。只因?yàn)槟憧床坏降讓。因此,即使作為現(xiàn)代程序員(面向?qū)ο缶幊蹋,學(xué)習(xí)匯編(面向機(jī)器編程)也是有必要的。





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1