比如如下代碼:#include <stdio.h>int main(){ int a, b;
a = 10;
b = a;
}看網(wǎng)上說(shuō),b = a 是把a(bǔ)變量?jī)?nèi)存空間中的數(shù)據(jù)復(fù)制到b變量的內(nèi)存空間中,是這樣的嗎?難道a和b的數(shù)據(jù)完全一樣,也占兩份內(nèi)存空間嗎?沒(méi)有寫(xiě)時(shí)拷貝、a和b共用同一內(nèi)存地址的說(shuō)法嗎?剛學(xué)C,不太明白,謝謝諸位
2 回答

largeQ
TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊
main.c#include <stdio.h>int main() { int a, b; a = 10; b = a; printf( "addr: 0x%08x\n", &a); printf( "addr: 0x%08x\n", &b); printf( "size: %zd\n", sizeof(a));} [xxx@xxx]# ./a.outaddr: 0x68a28bccaddr: 0x68a28bc8size: 4
兩個(gè)地址相差四個(gè)字節(jié),顯然不在同一個(gè)地址

湖上湖
TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
因?yàn)镃是靜態(tài)類(lèi)型的語(yǔ)言,因此兩個(gè)不同變量就是位于兩個(gè)不同內(nèi)存地址的,即使內(nèi)容完全一樣。請(qǐng)注意,是“變量”!
- 2 回答
- 0 關(guān)注
- 954 瀏覽
添加回答
舉報(bào)
0/150
提交
取消