課程
/后端開發(fā)
/C
/Linux C語(yǔ)言指針與內(nèi)存
也就是說(shuō) str【9】 本來(lái)應(yīng)該是 ‘\0’ ?也被占用了 ?為什么只打印 ?9個(gè)a
2016-10-06
源自:Linux C語(yǔ)言指針與內(nèi)存 5-4
正在回答
前面說(shuō)錯(cuò)了~~~~~
輸入25個(gè)a,str也是25個(gè)a,如下圖:
下圖中可以知道,str的在棧中地址是0x7fffffffde00。
當(dāng)輸入25個(gè)'a'時(shí),內(nèi)存中從0x7fffffffde00開始到0x7fffffffde18的25個(gè)內(nèi)存單元中保存的都是輸入的'a',在0x7fffffffde19保存的是'\0'。所以輸出str時(shí)會(huì)輸出25個(gè)'a';
而str3在內(nèi)存中的地址應(yīng)該是0x7fffffffde10,由于從0x7fffffffde10到0x7fffffffde18保存了9個(gè)'a',在0x7fffffffde19保存的是'\0',所以輸出str3時(shí)是從str3的地址0x7fffffffde10開始,就只有9個(gè)'a'了。
慕斯卡3531659 提問者
小白來(lái)求教 回復(fù) 慕斯卡3531659 提問者
小白來(lái)求教
可是 str 的第10位置 也是a呀 ?不是 ?‘\0’
str3的長(zhǎng)度爲(wèi)10,不是3,寫錯(cuò)啦
str3的長(zhǎng)度爲(wèi)3,所以就是9個(gè)‘a(chǎn)’和一個(gè)‘\0’,其他的a還在後面。
舉報(bào)
指針-C語(yǔ)言的核心,代領(lǐng)大家對(duì)c語(yǔ)言有更加深刻的理解
1 回答str3長(zhǎng)度是10,為什么輸入那么多a,還能全都輸出,不應(yīng)該是9個(gè)a嗎?
1 回答最后輸出str[7]應(yīng)該是a才對(duì)吧?因?yàn)閟tr接下去就是str3了
2 回答如果int a = 3; 那么int *p=&a;之后 是不是*p=3,p=&a 呢?
1 回答這個(gè)地方為什么a沒變 但是指針變了
3 回答那個(gè)交換a,b數(shù)值的程序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2016-10-07
前面說(shuō)錯(cuò)了~~~~~
輸入25個(gè)a,str也是25個(gè)a,如下圖:
下圖中可以知道,str的在棧中地址是0x7fffffffde00。
當(dāng)輸入25個(gè)'a'時(shí),內(nèi)存中從0x7fffffffde00開始到0x7fffffffde18的25個(gè)內(nèi)存單元中保存的都是輸入的'a',在0x7fffffffde19保存的是'\0'。所以輸出str時(shí)會(huì)輸出25個(gè)'a';
而str3在內(nèi)存中的地址應(yīng)該是0x7fffffffde10,由于從0x7fffffffde10到0x7fffffffde18保存了9個(gè)'a',在0x7fffffffde19保存的是'\0',所以輸出str3時(shí)是從str3的地址0x7fffffffde10開始,就只有9個(gè)'a'了。
2016-10-07
可是 str 的第10位置 也是a呀 ?不是 ?‘\0’
2016-10-07
str3的長(zhǎng)度爲(wèi)10,不是3,寫錯(cuò)啦
2016-10-07
str3的長(zhǎng)度爲(wèi)3,所以就是9個(gè)‘a(chǎn)’和一個(gè)‘\0’,其他的a還在後面。