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