C C 結構體總結

2021-08-04 04:48:11 字數 4800 閱讀 5451

#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.結構...