欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

定義int變量時靠近char的變量會變成0

榮姿康2年前16瀏覽0評論

定義int變量時靠近char的變量會變成0?

程序員最常見到的口頭禪是,“這個問題好奇怪”,“在我機器上好好的!!!” ....

所以,題主的問題根本就不是一個問題。遇到類似問題,應該先從自己代碼本書找原因,而不是去懷疑語言或者編譯器。原因很簡單,這些東東都幾十年了,要是有這么簡單的Bug早就被發現了。

由于題主沒有貼出自己的代碼,因此沒辦法幫題主分析問題在哪,但是在實際開發中有很多原因會導致題主所說的問題。我們舉幾個例子。

局部變量與全局變量

局部變量默認是不會被初始化的,因此當訪問局部變量的時候其值是一個隨機值,可能是0,也可能是其它值。

但是全局變量如果沒有被顯示初始化的情況下,是一定被初始化為0的。因此如果你得代碼是這樣的,那么itest的輸出值一定是0,而test則不一定。所以你覺得int變量在靠近char的時候會變成0,其實沒有因果關系。

內存訪問越界

另外一種情況是訪問越界的問題,如果你char類型的變量存在訪問越界的問題,可能會把鄰居的變量給覆蓋了,從而導致認為的結果。同樣,我們來看一個例子。

如圖所示,圖中的gtest變量,你本來以為是9的,但實際打印的時候卻是0.這就是因為在對ctest清零的時候越界造成的。

類似的問題還很多,當我們遇到問題的時候還是要盡量從代碼本身找問題,這樣更容易一些。至于編譯器,肯定是有Bug的,估計我們遇到的可能性不會太大。

java無法引用int,定義int變量時靠近char的變量會變成0