4
: ϳ. .
1.
3.1. , .
3.2. .
3.3. , .
3.4. . . - . 3.3.
2.
.
, . .
3.
1) .
2) .
3) .
4) .
5) (- ).
6) .
7) .
8) .
9) .
4.
- ?
- ?
- ?
- ?
- ?
- new?
- delete?
- ?
) int mas= new int[7];
) int* mas = new int*[9];
) int R=9; int * mas = &R; delete mas;
- ?
- ?
- , , , .
12. N=5, 1,5; 23.87, 8.
- ++?
- ? .
- ? .
- MyFunc, int float.
- ?
- ?
- ?
N. N . , , .
ϳ - , () . ϳ , ' . (, ), , , .
.
, . , void f(int& x) {x=3;} 3. . , {double&b=a[3]; b=sin(b);} [3]=sin([3]);. , : ; ; ' . , , '. , int const & const ref = a[3]; int const * const ref = &a[3]; , ++, ; , int const & ref = a[3];, int const * ref = &a[3]; .
|
|
', ( ; , , ). , :
void Print(int x);
void Print(double x);
void Print(int x, int y);
. , void f(int x, int y=5, int z=10), f(1), f(1,5) f(1,5,10) .
. , . .
, . .
, .. . , . . . .
. , . , . .
:
- . ;
- . , swap() , :
// swap() !
void swap(int vl, int v2) {
int tmp = v2;
v2 = vl;
vl = tmp;
}
swap() . , , . , :
|
|
#include <iostream>
void swap(int, int);
int main() {
int i = 10;
int j = 20;
cout << " swap():\ti: "
<< i << "\tj: " << j << endl;
swap(i, j);
cout << " swap():\ti: "
<< i << "\tj: " << j << endl;
return 0;
}
:
swap(): i: 10 j: 20
swap(): i: 10 j: 20
. . swap() :
// pswap() ,
// vl v2
void pswap(int *vl, int *v2) {
int tmp = *v2;
*v2 = *vl;
*vl = tmp;
}
main() . :
pswap(&i, &j);
:
swap(): i: 10 j: 20
swap(): i: 20 j: 10
. swap() :
// rswap() ,
// vl v2
void rswap(int &vl, int &v2) {
int tmp = v2;
v2 = vl;
vl = tmp;
}
main() swap():
rswap(i, j);
main(), .
-
. . -, l- .
- ? -, , (. swap()). -, . -, .
, - , . , . -, , , .
-, , . - , . .
- . , , , , . , :
void ptrswap(int *&vl, int *&v2) {
int *trnp = v2;
v2 = vl;
vl = tmp;
}
int *&v1;
: v1 int. main(), rswap(), ptrswap():
#include <iostream>
void ptrswap(int *&vl, int *&v2);
int main() {
int i = 10;
int j = 20;
int *pi = &i;
int *pj = &j;
cout << " ptrswap():\tpi: "
<< *pi << "\tpj: " << *pj << endl;
ptrswap(pi, pj);
cout << " ptrswap():\tpi: "
<< *pi << "\tpj: " << pj << endl;
return 0;
}
:
|
|
ptrswap(): pi: 10 pj: 20
ptrswap(): pi: 20 pj: 10
- -
-, -? , , . : ?
3.6, , . .
, - , , :
- , .
( ), .
-
++ , , , . ,
void putValues(int[ 10 ]);
,
void putValues(int*);
. :
// putValues()
void putValues(int*);
void putValues(int[]);
void putValues(int[ 10 ]);
:
- , . , . , , :
void putValues(const int[ 10 ]);
- . . . :
void putValues(int[ 10 ]); // int*
int main() {
int i, j [ 2 ];
putValues(&i); // : &i is int*;
//
putValues(j); // : j - 0- - int*;
//
, int* . , , .
C- , . . , 0. . :
void putValues(int[], int size);
int main() {
int i, j[ 2 ];
putValues(&i, 1);
putValues(j, 2);
return 0;
}
putValues() :
(10)< 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 >
10 . putValues(), :
#include <iostream>
const lineLength =12; //
void putValues(int *ia, int sz)
{
cout << "(" << sz << ")< ";
for (int i=0;i<sz; ++i)
{
if (i % lineLength == 0 && i)
cout << "\n\t"; //
|
|
cout << ia[ i ];
// , ,
//
if (i % lineLength!= lineLength-1 &&
i!= sz-1)
cout << ", ";
}
cout << " >\n";
}
- . , .
// - 10
void putValues(int (&arr)[10]);
int main() {
int i, j [ 2 ];
putValues(i); // :
// 10
putValues(j); // :
// 10
return 0;
}
, putValues() 10 . , , :
#include <iostream>
void putValues(int (&ia)[10])
{
cout << "(10)< ";
for (int 1 =0; i < 10; ++i) { cout << ia[ i ];
// , ,
//
if (i!= 9)
cout << ", ";
}
cout << " >\n";
}
matrix , . matrix :
int (*matrix)[10]
. matrix int. , . , , .
, *matrix - .
int *matrix[10]; matrix int.