麻煩看下這幾個變數在定義和初始化後放在記憶體的哪個位置上,謝謝

2022-03-09 18:16:29 字數 1330 閱讀 5011

1樓:匿名使用者

123和abc都是在陣列的儲存區域,也就是按你的說法是變數區。def在靜態資料區,也就是」常量區「。

char *p="def";這種寫法是定義了乙個字元指標,編譯器將def放入靜態資料區,並將其位址賦給變數p,def這個字串實際上具有全域性性,所有函式都能用。

而前兩行的寫法是定義了對應型別的陣列,在記憶體中分配對應大小的區域,然後把初始化值寫入。

也就是說,前兩種寫法定義的陣列都是變數陣列,其值是可以修改的,而p指向的def串,實際是個常量,如果試圖改變的話,要出錯,試試看是啥錯誤。

多說一句,在c++中,char *p="def";的寫法實際上是違反語法規則的,因為c++標準不允許將乙個const指標賦值給普通的指標變數,但是,為了相容,如果不允許這種寫法的話,很多舊的**要改動,很多人的習慣也要改,所以通融了。

********************=

「遇到問題需要關閉「也就是我說的 試試看 的錯誤。靜態資料區是不允許更改的,如果**中試圖這樣做會導致記憶體訪問違例,windows會叉掉你的程式。

另:為避免這種錯誤,建議將char *p="def";改成const char *p="def"; 這樣寫是等價的,但因為使用了const,編譯器會禁止所有的試圖通過p來改寫常量的**,編譯不會通過的。

--------------------------

再加一句,在release版編譯時,有些編譯器會直接刪掉這種錯誤**,因而不會出現」需要關閉「的錯誤。

2樓:匿名使用者

def是放在常量區的,但是abc不是,這個陣列空間是開放在棧空間中,因為你的定義方式決定了。指標p指向的位置食常量區,因此不能該,但是指標變數本身可以改變

您好,麻煩您再看一下這道題,這是答案中我不明白的地方,謝謝。

3樓:冰岩泉

ln(x-2)-ln(x+1)=ln[(x-2)/(x+1)]x趨近於無窮大的時候(x-2)/(x+1)趨近於1ln1=0

所以ln(x-2)-ln(x+1)趨近於0無窮大減去無窮大也可以趨近於某個定值的,不一定是無窮大

概率題 麻煩幫忙看下答案和格式對不對 提出要修改,更正的地方,謝謝

4樓:

已知x是1,2,3,x,5,6,7的中位數,所以x有無數種可能,3-5範圍內的都可以,且1,3,x^2,-y的平均數為1,所以x^2-y=0即x^2=y。 y-1/x=x^2-1/x。可以看出,x^2隨x的增大而增大,1/x隨x的增大而減小,要使y-1/x最小則x應越小越好,所以x=3時,y-1/x的最小值為3^2-1/3=8/2/3=26/3.

C語言中定義變數時在變數前面加星號是什麼意思

float b 表示b是乙個 指標的指標 也可以理解為是乙個二維陣列的指標,具有類似的解釋,可以理解為是乙個三維陣列的指標。c語言在定義變數時加兩個星號是表明這個變數為二級指標 c語言中在定義變數時使用 號是為了表明該變數為指標 指標有分一級指標,二級指標,指標等,有幾個 號就相當於是幾級指標 指標...

麻煩朋友們給看看這幾個是什麼石頭,這是在河邊撿的,為什麼打燈出來裡面的紫色的呢

這種 效果看,有貝殼狀斷面,透光性好,應該是天然火山玻璃 火山玻璃 volcanic glass 指由火山噴發出來的熔岩,迅速冷卻來不及結晶而形成的一種玻璃質結構岩石。無一定的形狀,有的成珍珠狀 氣孔狀或不規則狀。因酸性熔漿粘度大 溫度低,在迅速冷卻條件下更容易形成玻璃質,所以火山玻璃巖以酸性為主,...

麻煩問下這是什麼字,麻煩問下這幾個字是什麼字

中職語文教學教研分享 靝拼音為ti n 萬丈 同萬丈 拼音為w n zh ng 埊,讀作 d 多年,拼音是du ni n。1 靝倉頡碼 手月人弓木 康熙字典 記載,靝 出自 篇海 與天同。出道書。即與 天 字有相同用法。漢語大字典 對 靝 的解釋,與 天 相通,亦解釋 靝 曾與 黑氣 同用,分別解作...