已采納回答 / onemoo
str 比 str2 高 0x40-0x38 = 8字節(jié),str占用6個(gè)字節(jié),可以容納開。str3 比 str 高 0x50-0x40 = 16字節(jié),str3占用10個(gè)字節(jié),也可以容乃開。一般變量的地址起始要求是2或4的倍數(shù),所以為了對(duì)齊,變量之間會(huì)有額外的空當(dāng)。
2015-08-09
&a:返回變量a的內(nèi)存地址
*a:用來(lái)保存變量a的內(nèi)存地址
&和*運(yùn)算符恰好相反。&運(yùn)算符接收一個(gè)數(shù)據(jù),然后告訴你這個(gè)數(shù)據(jù)保存在哪里;*運(yùn)算符接收一個(gè)地址,然后告訴你這個(gè)地址中保存的是什么數(shù)據(jù)。
例:int *a = &a
*a:用來(lái)保存變量a的內(nèi)存地址
&和*運(yùn)算符恰好相反。&運(yùn)算符接收一個(gè)數(shù)據(jù),然后告訴你這個(gè)數(shù)據(jù)保存在哪里;*運(yùn)算符接收一個(gè)地址,然后告訴你這個(gè)地址中保存的是什么數(shù)據(jù)。
例:int *a = &a
2015-07-31
#include <stdio.h>
int main()
{
int a;
a=3;
int *p=&a;
printf("%d\n",p);
scanf("%d",p);
printf("%d\n",p);
printf("%d\n",*p);
getch();
}
運(yùn)行一下這個(gè)你就明白 了
int main()
{
int a;
a=3;
int *p=&a;
printf("%d\n",p);
scanf("%d",p);
printf("%d\n",p);
printf("%d\n",*p);
getch();
}
運(yùn)行一下這個(gè)你就明白 了
2015-07-30
已采納回答 / onemoo
這是函數(shù)指針聲明。這是將pquadrate聲明為函數(shù)指針,它指向的是有一個(gè)int型參數(shù),返回值為int的函數(shù)。這語(yǔ)句同時(shí)將pquadrate初始化為quadrate的地址(顯然quadrate應(yīng)該是個(gè)函數(shù)名)。一步一步講這個(gè)聲明:這語(yǔ)句聲明的是pquadrate變量,前面有個(gè)*,而且是用小括號(hào)和變量名括起來(lái)的(*pquadrate),表明這個(gè)變量名優(yōu)先和*結(jié)合。聲明變量時(shí)前面有*就代表這個(gè)變量是指針,所以pquadrate是個(gè)指針。那它指向什么呢?接著看,后面有小括號(hào),前面有類型,表明是個(gè)函數(shù)。參數(shù)就是i...
2015-07-28