- , .. , . , :
type _[K1][K2] [KN];
type ( ); _ ; N , -1 . : long Array[4][3][6];
Array , 36. ++ , , . . Array[0][0][0], Array[0][0][1], Array[0][0][2], , Array[0][0][5]
Array[0][1][0], Array[0][1][1], , Array[0][1][5], Array[0][2][0], , Array[0][2][5] 36 Array[1][0][0], Array[1][0][1] . .
.
long Array[4][3][6] = {0,1,2,3,4,5,6,7,8,9}; , Array, ..
Array[0][0][0] = = 0, Array[0][0][1] = =1, Array[0][0][2]= = 2, Array[0][0][3] = =3, Array[0][0][4] = = 4, Array[0][0][5] = = 5, Array[0][1][0] = = 6, Array[0][1][1] = = 7, Array[0][1][2] = = 8, Array[0][1][3] = = 9. Array .
, , , , . ( ). ,
long A[4][5][6] = { {{0}},
{ {100}, {110, 111} },
{ {200}, {210}, {220, 221, 222}} };
:
[0][0][0] = = 0
[1][0][0]== 100, [1][1][0] == 110, [1][1][1] == 111
[2][0][0] = = 200, [2][1][0] = = 210,
[2][2][0]== 220, [2][2][1] == 221, [2][2][2] == 222
.
, . . ,
float matrix [][5] = { {1}, (2}, {3} };
matrix 35, .
cout "\ n sizeof (matrix) = "sizeof (matrix); /* : sizeof(matrix)=60*/
|
|
matrix[0][0] = 1
matrix[1][0] = 2
matrix[2][0] = 3
, . . , , "" . -. , type ar [N] [M] [L], ar - , type [M] [L]. 1 ar sizeof(type) * M * L.
* (ar + 1) ar[l], .. , (&ar[0]), type[M] [L]. :
// 5.5
#include "stdafx.h"
#include <iostream>
void main(){
int b[3][2][4] = {0, 1, 2, 3,
10, 11, 12, 13,
100, 101, 102, 103,
110, 111, 112, 113,
200, 201, 202, 203,
210, 211, 212, 213,
};
// b[][][]
std::cout << "\nb = " << b;
// b[0][][]
std::cout << "\n*b = " << *b;
// b[0][0][]
std::cout << "\n**b = " << **b;
// b[0][0][0]
std::cout << "\n***b ="<< ***b;
// b[1][][]
std::cout << "\n*(b + 1) = " << *(b + 1);
// b[2][][]
std::cout << "\n*(b +2) = " << *(b + 2);
// b[0][1][]:
std::cout << "\n*(*b + 1) = " << *(*b + 1);
std::cout << "\n*(*(*(b + 1) + 1) + 1) = " <<*(*(*(b + 1) + 1) + 1);
std::cout << "\n*(b[l][l]+ 1) = " << *(b[1][1] + 1);
// b[2][0] [0];
std::cout<< "\n*(b[l] + 1)[1] = " << *(b[1] + 1)[1];
getchar();
}
:
b = 0x8d880fd0
*b = 0x8d880fd0
**b = 0x8d880fd0
***b = 0
*(b + 1) = 0x8d880fe0
*(b + 2) = 0x8d880ff0
*(*b + 1) = 0x8d880fd8
*(*(*(b + 1) + 1) + 1) = 111
*(b[1][1] + 1) = 111
*(b[1] + 1) [1] = 200
. b[i] [j] [k] *(*(* (b + i) + j) + k). :
*(*<*(b + 1) + 1) + 1) == b[1][1][1] ==111
:
*(b[1][1] + 1) == 111
, , , . . , , : ar[i][j][k], type ar[N][M][L], N, M, L - , :
|
|
, .. ar, (unsigned long)ar;
i * ( * L) * sizeof(type) i- M L, ;
j- ( ), L . (i * ( * L) + j * L) * sizeof (type);
k- , .. (unsigned long) (i * (M * L) + j * L + k) * sizeof(type);
, .. : * ((unsigned long) (i * ( * l) + j * l + k)).
. ++ , . , , , , . ,
int *array[6];/* int. array, , int. */
int (*ptr)[6]; /* ptr , int. , (array + 1) sizeof (int) (.. int). 1 ptr, sizeof (int[6]), .. 12 int.*/
* , .
, "". , ( , ..). char, . , "" :
char spisok[25][20];
, 25 19 (). spisok[0], spisok[l],... , . .
( ) . , , :
char spisok[][20] = { "", "", "" };
spisok 3 , 20 char (. 5.2).
. 5.2. char spisok[3][20] char *pointer[3],
. , spisok.
char* :
char *pointer [] = {"", "", ""};
pointer, 3 - char *, 3*sizeof (char *) . , "" (7 ), "" (7 ), "" (8 ), pointer[0], pointer[1], pointer[2]. . 5.2.
|
|
. , ( ) , , .
// 5.6
#include "stdafx.h"
#include <iostream>
void main (){
char *pointer []={"Ivanov", "Petrov", "Cidorov", "Antonov"};
int i, j;
char* temp;
int iNumberOfElement = 4;
for(i = 0; i < iNumberOfElement; i++) std::cout<<"\n\n"<< pointer [i];/* */
//
for(i = 0; i < iNumberOfElement -1; i++)
for(j = iNumberOfElement-1; j>i;j--){
if(strcmp(pointer [j], pointer [j-1]) <0){
temp = pointer [j]; //
pointer [j] = pointer [j-1];
pointer [j-1] = temp;
}
}
std::cout<<"\n\n\n";/* */
for(i = 0; i < iNumberOfElement; i++) std::cout<<"\n "<< pointer [i];
getchar();
}
"" , . - .
void* malloc(unsigned int size);
void free(void* p)
new delete
. new :
new _
, . new , .
.
long (*1)[2][4]; //
1 = new long[3][2][4]; //
, 24 long. , . 1 3 ´ 2 ´ 4 ´ sizeof (long) . ( ) 1 , , , .
, "", , , , delete. , ;
delete [] 1;
, , 1 . :
// 5.7
#include "stdafx.h"
#include <iostream>
void main(){
long (*lp) [2][4];
lp = new long [3][2][4];
std::cout<< "\n";
for (int i = 0; i < 3; i++) {
std::cout << "\n";
for (int j = 0; j < 2; j++)
|
|
for (int k = 0; k < 4; k++) {
lp[i][j][k] = i + j + k;
std::cout<<'\t'<< lp[i][j][k];
}
}
getchar();
delete [] lp;
}
:
01231234
12342345
23453456
, , . . _ new :
new long[] // ,
new long[][2][4] // ,
new long[3][][4] // ,
. ( ) . . . , , , .
. , . , , , , ( ) :
// 5.8
#include "stdafx.h"
#include <iostream> // -
void main(){
int n; //
std::cout<< "\nInput order of matrix: ";
std::cin>> n; //
float **matr; //
matr = new float *[n]; // float *
if (matr == NULL){
std::cout<< "He !";
return; //
}
for (int i = 0; i < n; i++){
// - float:
matr[i] = new float[n];
if (matr[i] == NULL){
std::cout<< "He !";
return; //
}
for (int j = 0; j < n; j++) //
//
if (i!= j)
matr[i][j] = 0;
else // :
matr[i][j] = 1;
}
for (int i = 0; i < n; i++){
std::cout<< "\n row" << (i + 1) << ":";// :
for (int j = 0; j < n; j++)std::cout<< "\t" << matr[i][j];
}
for (int i = 0; i < n; i++)
delete matr[i];
delete[]matr;
getchar();
}
:
: 5 <Enter>
1: 10000
2: 01000
3: 00100
4: 00010
5: 00001
. 5.3 (n - 1) - , n . (n - 1) , .
. 5.3.