網(wǎng)絡(luò)設(shè)計(jì)畢業(yè)論文seo排名優(yōu)化關(guān)鍵詞
結(jié)構(gòu)體指針初始化以及結(jié)構(gòu)體變量作為函數(shù)實(shí)參傳遞時(shí)易混淆的知識(shí)點(diǎn)
首先要明確,結(jié)構(gòu)體類(lèi)型是用戶自己定義的一種數(shù)據(jù)類(lèi)型,其本質(zhì)上與int
, char
等標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型是一致的
**1.**因此,在進(jìn)行結(jié)構(gòu)體指針的初始化時(shí),應(yīng)該這樣寫(xiě):
# include <iostream>
using namespace std;
int main()
{typedef struct{int number; //學(xué)號(hào)char sex; //性別 }stu;
stu x;
stu *p1=&x; //定義結(jié)構(gòu)體指針p1并初始化int a[3] = {1,2,3};int *p2=a;cout<<*p2<<endl;return 0;
}
即stu *p1=&x;
,而不應(yīng)該寫(xiě)成stu *p1=x
.前面已經(jīng)說(shuō)了,結(jié)構(gòu)體類(lèi)型是用戶自己定義的一種數(shù)據(jù)類(lèi)型,其本質(zhì)上與int、char
等標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型是一致的,故結(jié)構(gòu)體指針變量名并不代表結(jié)構(gòu)體變量首地址,在對(duì)結(jié)構(gòu)體指針進(jìn)行初始化時(shí)要用& 結(jié)構(gòu)體變量名
指出地址,數(shù)組指針在初始化時(shí)這樣寫(xiě):int *p2=a;
,是因?yàn)閿?shù)組名代表數(shù)組首地址。
2. 結(jié)構(gòu)體變量作為函數(shù)實(shí)參傳遞時(shí)
···
void fun(stu student1)
{
…
}
int main()
{
…
stu student2; //定義結(jié)構(gòu)體變量
fun(student2);
return 0;
}
···
形參是結(jié)構(gòu)體變量名,故傳給函數(shù)的實(shí)參是結(jié)構(gòu)體變量名,它不代表結(jié)構(gòu)體變量占用內(nèi)存空間的首地址。