1
#include
"iostream"2
using
namespace
std;
3 4
struct
teststruct5 ;
11 //
【巢狀的結構體型別成員】
12struct
date
13 ;
18struct
person
/*定義結構體
*/19
;24
//【結構體中的指標成員】
25struct
student
;30
31int
main(int
argc,
char*
argv)
32 ;
43 cout
<
<
"teststruct
ch:"
<
ch<
<
"chararray:
"<
chararray
<
<
"dnumber:
"<
dnumber
<
<
"inumber:
"<
inumber
<
<
endl;
44 45
//【結構體陣列】
46 teststruct
tt[3]=,
,};47
for
(int
i=0;i
<
3;i++)
48 51
//【指標變數與結構體變數】
52 //
必須要給結構體指標變數賦予乙個有效的結構體變數位址,才能正常操作結構體指標變數。
53 //
teststruct
*p=&t;否則將出現不可預知的問題。(*p).ch
等價於p->ch
54 teststruct*p
=&t;55
cout
<
<
"teststruct
p->ch:
"<
>
ch<
<
"p->chararray:
"<
>
chararray
<
<
"p->dnumber:
"<
>
dnumber
<
<
"p->inumber:
"<
>
inumber
<
<
endl;
56 //
【指向結構體陣列的指標】
57 //
58 teststruct*pp
;59
for(pp
=tt;pp
<
tt+3;pp++
)60
63 //
【巢狀的結構體型別成員】
64 //
訪問巢狀結構體date的成員
per->birthday.year
等價於(*per).birthday.year
65 person
*per;
66 per
=new
person;
//per=(person
*)malloc(sizeof(person));
67 cout
<
<
"input
name,age,year,month,day
"<
<
endl;
68 cin
>
>
per-
>
name
>
>
per-
>
age>
>
per-
>
birthday
.year
>
>
per-
>
birthday
.month
>
>
per-
>
birthday
.day;
69 cout
<
<
"name:
"<
<
per-
>
name
<
<
"age:
"<
<
per-
>
age<
<
"birthday:
"<
<(*
per)
.birthday
.year
<
<"/
"<
<
per-
>
birthday
.month
<
<"/
"<
<
per-
>
birthday
.day
<
<
endl;
70delete
per;
//free(per);
71 //
【結構體中的指標成員】
72 student
stu,
*pstu;
73 //
結構體成員指標需要初始化
74 stu
.name
=newchar;
=(char*)malloc(sizeof(char));
75 strcpy(stu
.name,
"ddd");
76 stu
.score
=99;
77 //
結構體指標需要初始化
78 pstu
=new
student;
//pstu
=(struct
student*)malloc(sizeof(struct
student));
79 //
構體指標的成員指標同樣需要初始化
80 pstu
->
name
=newchar;
//pstu->name
=(char*)malloc(sizeof(char));
81 stu
.next
=pstu;
82 strcpy(pstu
->
name,
"cccc");
83 pstu
->
score
=88;
84 pstu
->
next
=null;
85 cout
<
<
"stu.name:
"<
<
stu.
name
<
<
"stu.score:
"<
<
stu.
score
<
<
endl;
86 cout
<
<
"stu.next->name:
"<
<
stu.
next
->
name
<
<
"stu.next->score:
"<
<
stu.
next
->
score
<
<
endl;
87 cout
<
<
"pstu->name:
"<
<
pstu
->
name
<
<
"pstu->score:
"<
<
pstu
->
score
<
<
endl;
88delete
pstu;
89 90
return0;
91 92
}93
結構體總結
結構體總結 共用體 聯合體 1.乙個結構變數的所佔記憶體空間大小,一般大於或者等於結構中所有成員變數大小之和,成員變數在結構體記憶體空間按照定義的順序依次儲存。2.共用體是將幾種不同型別的變數存放在同一段記憶體單元中。3.語法形式 union 共用體名共用體變數名 4.共用體與結構體的定義形式相似,...
結構體總結
1.結構體的定義 結構體是一些值得集合,這些值稱為成員變數,結構體的每個成員可以是不同型別的變數。2.結構體的宣告 結構體的名稱盡量做到容易理解,結構體的名稱可以省略但是不建議省略 在結構體裡可以放任何合法的內容,結構體內容 member 不能為空,這是在c語言中的要求 結構體變數 variable...
結構體總結
1.結構體和陣列的區別和聯絡 陣列 相同型別元素的集合 結構體 也是一些值的集合 稱為成員變數 每個成員可以是相同或不同的變數。2.結構體成員 可以是標量,陣列,指標,還可以是結構體。這裡補充一下,陣列的元素可以是陣列,就像二維陣列的元素可以看成一維陣列,任何陣列都可以看成是由一維陣列構成。3.結構...