declare arrays:
arraytype arrayName[arraySize]; //basic syntax
example:
int zakiLive[10];
Initialize arrays:
int zakiLive[5]={4,5,6,8};
zakiLive[3]=8
It means value 8 is in 3rd index in array zakiLive as index in array count from 0 and it goes on..
Here is an example of array
#include<iostream> using namespace std; #include<iomanip> using std::setw; int main(){ int n[10]; //n is an array of 10 integers for(int i=0;i<10;i++){ n[i]=i+100; } cout<<"Element"<<setw(15)<<"Value"<<endl; //here setw() built in library function is using to make a gap between Element and Value //output for(int j=0;j<10;j++){ cout<<setw(2)<<j<<setw(19)<<n[j]<<endl; } return 0; }
C++ Arrays have some types:
Multi-Dimensional Arrays:
syntax can be like this
array_data_type array_name[size1][size2][size3]……..[sizeN];
Two Dimensional Arrays(It is one kind of multidimensional arrays):
type arrayName[x][y];
Initialize Two Dimensional Arrays:
int a[3][4]={
{0,1,2,3},
{4,5,6,7},
{8,9,10,11}
};
We can also write equivalent like this
int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};
We can accesss Two-Dimensional Array elemets by
int valueArray=a[2][3];
Here is a code
#include<iostream> using namespace std; int main() { //declaring an array with 5 rows and 2coloumns int a[5][2]={ {0,0}, {1,2}, {2,4}, {3,6}, {4,8}, }; //output for(int i=0;i<5;i++){ for(int j=0;j<2;j++){ cout<<"a["<<i<<"]"<<"["<<j<<"] : "; cout<<a[i][j]<<endl; } } return 0; }
C++ Pointer to an Array
#include<iostream> using namespace std; int main(){ double balance[5]={100.09,2.8,3.4,17.8,8.8}; double *p; p=balance; //output eache array elements value by pointer p cout<<"endl"; cout<<"Array values using pointer"<<endl<<endl; for(int i=0;i<5;i++){ cout<<"*(p+"<<i<<"): "; cout<< *(p+i) <<endl; } //the output means it is pointing to the array balance by *p to p=balance; //now the bvalance will give some other output also cout<<"Array values using balance as address"<<endl<<endl; for(int i=0/* we are giving here 0 as any array starts from 0*/;i<5;i++){ cout<<"*(balance+"<<i<<" )"; cout<<*(balance+i)<<endl; } return 0; }
Here it is happeing like this shown above.
There are another 2 types of C++ array functioning with pointer
Passing Arrays to Function and Returning Array From Functions
Now let discuss in details
Passing Arrays to Function:
What we know from the function synatx is
function_type function_name(arguments_type arguments_name,arguments_type arguments_name){ function_body; return function_type; }
But it’s not possible to pass a full array to the argument by using an index number..But we can pass an array by using without an index..This process can be done by three steps
Way-1
Formal Parameters as a pointer
void myFunction(int *param) { //Statements }
Way-2
Formal Parameters as a size array as follows
void myFunction(int param[10]) { //statements }
Way-3
Formal Paramaeters as an unsized array as follows
void myFunction(int param[]) { //statements }
The example given here with array without size
#include<iostream> using namespace std; double getAverage(int arr[],int sizes); int main(){ int balance[5]={1000, 2, 3, 17, 50}; double avg; //passing pointer to the array as an argument. avg=getAverage(balance,5); //output the returned value cout<<"Average value is : "<<avg<<endl; return 0; } double getAverage(int arr[], int sizes) { int i,sum=0; double avg; for(i=0;i<sizes;++i) { sum+=arr[i]; } avg=double(sum)/sizes; return avg; }
Return Array from Functions:
#include<iostream> #include<ctime> using namespace std; int *getRandom() { static int r[10]; //set the seed for random numbers srand( (unsigned)time( NULL ) ); for(int i=0;i<10;++i) { r[i]=rand(); cout<<r[i]<<endl; } return r; } int main() { int *p; p=getRandom(); // a pointer to an int for(int i=0;i<10;i++){ cout<<"(p+"<<i<<") :"; cout<<*(p+i)<<endl; } return 0; }
We will discss this later more In Sha Allah 🙂