已采納回答 / 咸魚干兒
因為在RAM內(nèi)存中最小的存儲單位是8bit也就是1Byte,但是地址總線是32位,所以可以尋址的空間是2^32=4G個最小存儲單位,也就是4GB。編號的數(shù)字大小不代表內(nèi)存最小存儲單位的大小呀。
2016-03-09
最贊回答 / 慕后端9788028
p[4]=101代表從初始位置(a的地址就始)以四個字節(jié)為一步,向前走4步,到達(dá)某個位置,然后對這個位置進(jìn)行初始化賦值,即把101賦給這個地址所代表的內(nèi)存空間。p[4],*p=101,p[4]代表從初始位置(a的地址就始)以四個字節(jié)為一步,向前走4步,到達(dá)某個位置。*p=101,代表此時指針指向的地址(即走了四步后所在位置)并對這個地址所在的內(nèi)存空間進(jìn)行初始化,賦值101。p+=3于p=p+3等同,加的是步數(shù),原理跟p[3]一樣
2016-03-09
已采納回答 / qq_朕有一車刁民_0
==為什么不會被覆蓋,不過你要想避免被覆蓋就把數(shù)組分為全局和局部的,兩個都是全局的肯定會被后者覆蓋,前者全局后者局部的,在局部使用的數(shù)組不會被覆蓋。
2016-02-15
已采納回答 / lifeforme
對于這個問題 請教了一些大神 ? ?給我的答案是:在你調(diào)試的時候,系統(tǒng)運行在保護(hù)模式,內(nèi)存不會溢出。你所看到的地址其實是系統(tǒng)映射出來的,實際上不存在。你以為你在訪問某地址 其實并沒有真正訪問具體的內(nèi)存地址
2016-02-04
最贊回答 / 熱噴Redpen
我把代碼稍微改一下: int* a;這里的a就是代表指針變量(int*),而不是一個整型變量(int)所以a存放的是地址,*a才是地址中存放的值(這里的*與第一行的*不同,這個*是取地址的意思)
2016-01-27
最贊回答 / 劉小宇0215
先回答第二個問題,注意是16進(jìn)制,不是十進(jìn)制,內(nèi)存可能分配半個字節(jié)嗎,隨著內(nèi)存越來越廉價,程序設(shè)計一般是空間換時間,每個數(shù)組是int的四個字節(jié)。第一個問題是二維數(shù)組賦值給一維數(shù)組,應(yīng)該很好理解,不過我不理解你為什么將那個表達(dá)式稱為常量表達(dá)式,應(yīng)該是變量表達(dá)式吧,而且這個數(shù)組[]里應(yīng)該最大是11,而不是12也不會是12以上,具體細(xì)節(jié)如果不懂的話,建議你最好在命令行用gdb一步步的慢慢調(diào)試,我也是剛剛學(xué),不過你犯的是常識錯誤。
2016-01-21