: - (.. )

:

: 1143


1.1.

, ( ). P :

 

P

 

() .

:

type *_;

type , () _. * ( , , ), .

- :

type *_ ;

, :

type *_ = _;

type *_ (_);

_ , , , , & .

 

1.

char cc = f, *p; //

//

// char

int *p1, *p2; // -

// p1 p2 int

har *pc = &cc; // -

// char

char *ptr (NULL); // char

int *mas [10]; // 10 int

int (*point) [10]; // 10 int

struct list *n, *pr; // n pr -

// list.

//list -

//, -

//

struct list // line

{ //list,

char b; int *k; // int

} line;

int **pp = &p1; // pp .

//

//p1 . ,

//

( ) :

& ( , , );

( , );

new.

:

;

;

;

;

.

, . . , . , , .

* , .

2 ( 1).

int a = 10, b = 20, c = 30;

int x[3][10];

ptr = pc; // ptr pc

// cc char

*ptr = +; //, ptr pc (. .

//),

p1 = &a; // p1

//

p2 = &b; // p2 -

// b

mas[0] = p1; // mas[0] -

// , p1

mas[1] = &b; // mas[1] b

*mas[0] = 15; // int,

//p1 mas[0], . . a

//

*p2 = 25; // b

point = &x[0]; // point -

// x, . .

//x[0][0]

point[0] = a; // 0,

// point -

// a

*(point + 1) = b; // ,

//point + 1, .. x[0][1]

// b

n = &line; // n line

pr = n; // n pr

(*n).b = *ptr; // b , n,

// ,

// ptr, . . line.b +

pr -> k = p1; // k , pr,

// p1, .. line.k

// a

1.2.

, . , :

, ;

;

() ;

.

, :

;

;

;

;

.

( ), . new:

new _

new _

new (), , . new . , () . ( ), new (NULL). , , . . , .

3.

int *p1, *p2;

char *ptr (NULL);

int *mas [10];

int (*point) [10];

struct list *n, *pr;

struct list

{ char b; int *k; }

 

p1 = new int; // int,

// p1

*p1 = 25; // , -

// p1, 25

p2 = new int(15); //

// 15,

//p2

mas[0] = new int; //

//, mas[0]

mas[1] = p1; // mas[1], p1 -

//

ptr = new char(*); // char,

// ptr,

// *

point = new int[10]; //C

//10 , point -

// ࠠ

n= new list; // ,

// n

pr = n; // pr n list

n->b = *p1; // b -

//, n, -

// , -

// p1, . . 25

n->k = p2; // k

//, n, -

// p2, .. -

// -

// 15

*(n->k) ++; // ,

// k -

// ,

// n, 1, . .

//16 ( p2)

new .

( , ) delete:

delete _;

, new. delete ( ).

, , :

delete [ ] _;

. .

, .

4.

int *a, *b;

. . . . . . .

a = new int; b = new int;

*a = 15; *b = -1; a = b; delete b;

. . . . . . .

:

 

a = new int; a b

b = new int;

*a = 15; *b = -1; a b

 

a = b; a b

 

15 , . . , . a b .

 

delete b ; a b

 

, , a b, , a . a .

1.3. ()

(, ) , . , . :

struct list

{int n;

type elem [k];}

n () ; n 0, , n k, ; elem ( ) , type .

, .

, ( ) ( ).

, . ( ), . . , .

5. ( BETA

).

 

 

. 1.1

 

(. 1.1) , NULL .

 

 

. 1.2

 

(. 1.2) .

 

. 1.3

 

(. 1.3), . , , . , .

( ) .

, . , .

:

struct list

{list *next;

type elem;}

type , next list.

5 :

struct list

{list *next;

char elem;}

 

, -, ( ) . , NULL.

-:

list *headlist;

headlist

 

 

. 1.4

 

- headlist, ( ) ( ), .

, ( . 1.4):

headlist . . . //

headlist->next . . . //

headlist->next->next . . . /

headlist->next->next->next . . .//

headlist->next->elem . . . //

//

, .

6. 5 ( , c ).

void main ( )

struct list

{list *next;

char elem;} *ph;

list *p;

char ch;

{ph = new list; // , ph -

//

ph->next = NULL; // , next

// , -

//

p = ph; // p

//

while ((ch = getchar ( )) != )

{p->next = new list; // , next -

//

//

p = p->next; // p

//

p->elem = ch;} // elem

// ch

p->next = NULL;} //Cc

// ( -

//) -

//,

7. , .

struct list

{list *next;

char elem;} *ph; //, ph

list *p, pr;

. . . . .

for (p = ph; p != NULL; p = p->next) . . . // -

//

for (p = ph, pr = NULL; p != NULL; pr = p, p = p->next) . . .

//

//

for (p = ph; p->next != NULL; p = p->next) . . .

//

//

if (ph != NULL)

for (p = ph; p->next != NULL; p = p->next) . . .

// (, ) -

//

:

1) ; , ( ); , , , ;

2) () ( ); , , /, ; ; , , , ;

3) () ( ); , , ; , , , ; ;

4) ;

5) .

 

| |