-
查看字符內(nèi)存:x/數(shù)量c單位
查看全部 -
代碼段不能隨便修改,堆和??梢孕薷?/p>
查看全部 -
查看內(nèi)存:x(輸出內(nèi)存的值)/3(顯示值的數(shù)量)d(以十進(jìn)制顯示) 0x7fffffffde14(從哪個(gè)地址開(kāi)始顯示
查看全部 -
若“p”是一個(gè)地址,則“*p”是到這個(gè)地址去取里面的值,“(*p)”把表示為一個(gè)整體,“(*p)(數(shù)據(jù))”若p為代碼段,則調(diào)用這個(gè)函數(shù),傳參數(shù)"數(shù)據(jù)"進(jìn)去。
若地址指向的是棧和堆,操作系統(tǒng)會(huì)把?;蛘叨训木唧w數(shù)據(jù)取出來(lái),若地址指向的不是一個(gè)?;蛘叨?,而是代碼段的話(huà),操作系統(tǒng)會(huì)認(rèn)為是指向某一個(gè)函數(shù)
查看全部 -
棧的特點(diǎn):先進(jìn)后出
查看全部 -
最先分配的棧地址會(huì)大些,和代碼段相反
查看全部 -
32位操作系統(tǒng),指針占4個(gè)字節(jié)
64位操作系統(tǒng),指針占8個(gè)字節(jié)
查看全部 -
3.指針的本質(zhì)就是地址
查看全部 -
2.
查看全部 -
1.
查看全部 -
1.
查看全部 -
C語(yǔ)言在內(nèi)存中數(shù)據(jù)的存儲(chǔ)位置 char a[] = “l(fā)inux” 占6個(gè)字節(jié),a存儲(chǔ)的是首地址,“l(fā)inux”可以在棧,也可以在堆中 char *p = “l(fā)inux” 占10個(gè)字節(jié),p指針變量占4字節(jié),里面保存的是后面字符串的地址,“l(fā)inux”占6個(gè)字節(jié),存儲(chǔ)在代碼段。 但字符串要更加靈活: linux棧中: char a[] = “l(fā)inux” char *p = a; 在代碼段: char *p = “l(fā)inux” 在數(shù)據(jù)段: 全局的char a[] = “l(fā)inux” void main() { char *p = a; } 在堆中: 就使用malloc查看全部
-
函數(shù)指針
int quadraate(int a);是一個(gè)函數(shù) ? ?
int (*pquadrate)(int a)=&quadrate;則是指向這個(gè)函數(shù)的指針! ??
?int s=(*pquadrate)(a)可以調(diào)用函數(shù)!
查看全部 -
#include <stdio.h>
int main()
{
int var = 10;
int *ptr_var;
ptr_var = &var;
printf(" var 的值是: %d", var);
printf("\n var 的內(nèi)存地址是: %x", &var);
printf("\n 指針ptr_var 的地址是: %x\n", &ptr_var);
printf("\n var 的值是: %d", *ptr_var);
printf("\n var 的地址是: %x\n", ptr_var);
return 0;
}
查看全部 -
一根地址總線(xiàn)只能表示2種狀態(tài),要么0,要么1; 兩根地址總線(xiàn)可以表示4種狀態(tài),00,11,10,01。 ...... 同理32根地址總線(xiàn)也就是32bit的操作系統(tǒng)可以表示2的32次方種狀態(tài)。也就是2的32次方個(gè)地址。 也就是2的32次方個(gè)字節(jié)。 軟件系統(tǒng)是不通bit的,2的32次方算出來(lái)的單位是4294967296個(gè)存儲(chǔ)地址,而操作系統(tǒng)的能識(shí)別的最小單位是byte,所以我們?cè)O(shè)計(jì)操作系統(tǒng)的,給4294967296個(gè)存儲(chǔ)地址,每個(gè)地址分1個(gè)byte,所以總共操作系統(tǒng)有4294967296byte,就是4GB。查看全部
舉報(bào)