1樓:匿名使用者
因為在編譯的時候,這兩個陣列的空間是已經分配好的,而這兩個陣列的定義是在相鄰的,所以分配的空間也是連續的,因此你在輸入超過陣列i長度的字元時,會覆蓋到陣列j的空間。
在vc裡編譯的時候,後面的變數存放在前一個變數的前面,比如#include "stdio.h"
main()
在我的機器上輸出是1245056,1245048,說明j的空間在i之前,這也就解釋了lcofjp的問題
可能編譯系統的不一樣,對於變數空間的分配也是不一樣的但是liuwenjiexx 為什麼會出現兩個地址不連續的情況也不太清楚
2樓:匿名使用者
不是吧。。。我用borland c++ 3.0編譯後結果輸出的就是abcde。顯然跟j沒有關係。
不過不會出現錯誤的。
3樓:匿名使用者
樓上說的有道理。不過在vc6.0上出現的問題,樓上的回答就解決不了了.例如:
輸入abcdefgh
poiuyt
輸出的卻是
yt這是怎麼回事呢?
4樓:abc好人
dfsasfasdfsfgasdfsfdasdf
5樓:匿名使用者
我在我的vc6.0上按你的方法試過,結果還是abcde,緊接著出現:
「測試.exe 遇到問題需要關閉。我們對此引起的不便表示抱歉。」
你再試一下!
c語言巨集定義字串問題,C語言巨集定義字串問題
用拼接符可以做到 define string arg aaaaaaa arg bbbbbbbbbb 但arg必須是個常量,不能是變數 c語言,將數字和字串拼成一個字串。用巨集來做,用api誰都會 巨集定義字串拼接可以使用巨集運算 即 define strcat x,y x y。運算子可以將兩個記號版...
c語言字串輸出是亂碼,C語言,字串輸出是亂碼
include include include int random int num void main printf 請依次輸入學生姓名 for i 0 i被點到的同學的名字是 printf s p random n 1 int random int num 你好沒有亂碼 就是邏輯上有些錯誤如圖 ...
c語言關於字串輸入的問題,一個C語言字串輸入問題
有明顯的致命錯誤 c語言字串輸入時,不要加地址符號 因為陣列名就表示地址。for int i 0 i 2 i 另外再加個標頭檔案 include c語言中比較兩個字串是否相等,不能直接比較if stu j name nm 應改成if strcmp stu j name,nm 0 if stu j n...