. , , ?
-, , . - . , , . . , , .
, . , .
3_3_1.
# include < iostream >
using std::cout;
using std::endl;
Int main()
{
int i =10, j =20;
int& rfc = i; cout<<rfc <<endl; // 10
int* ptr = &i; cout<<*ptr<<endl; //10
ptr = & j; cout <<* ptr << endl; //20,
cout<< i <<endl; //10, i ;
rfc = j; cout << rfc << endl; //20,
cout<< i <<endl; //20, i ,
// rfc - i;
system("pause");
return 0;
}
- .
. b, *(b +3) , b [3] ( ). data [ row ][ col ] *(*(data + row)+ col).
int (* data 1)[20] 20 .
int * data 1[20] 20 .
, . ( Pascal).
:
const int ArraySize=5;
int a[ArraySize] = {12, 3, 42, 5, 34};
int b[ArraySize];
b=a; // ! b,
// C++ Microsoft Visual Studio:
// error C2106: '=': left operand must be l-value,
// .. b
. .
|
|
new [ ],
delete [].
:
int * ptrArray1 = new int[5];//ptrArray1 5
... // ptrArray1
delete [] ptrArray1; // ptrArray1
3_4_1.
# include < iostream >
using std::cout;
using std::endl;
Int main()
{
int Array[5] = {10, 20, 30, 40, 50}; //
//
int * ptrArray1 = new int[5]; //
int* ptrArray2 = new int[5]; //
// . !
cout<<"SizeofArray " <<sizeof(Array) <<endl; // - 20
cout<<"SizeofPtrArray "<<sizeof(ptrArray1)<<endl; // - 4
// -
for (int i=0; i<5; ++i){ // Array ptrArray1,
*(ptrArray1+i)=*(Array+i); //
cout<<*(ptrArray1+i)<<endl; //
}
for (int i=0; i<5; i++) { // Array ptrArray2,
ptrArray2[i]= Array[i]; //
cout<<ptrArray2[i]<<endl; //
}
delete [] ptrArray1; // ,
delete [] ptrArray2; // ptrArray1 ptrArray2
system (" pause ");
return 0;
}