Você está na página 1de 10

Array tutorials in c programming language by examples

An array is derived data type in c programming language which can


store similar type of data in continuous memory location. Data may be
primitive type (int, char, float, double), address of union,
structure, pointer, function or another array.

Example

of

array

declaration:

int arr[5];
char arr[5];
float arr[5];
long double arr[5];
char * arr[5];
int (arr[])();
double ** arr[5];

Array

is

useful

when:

(a) We have to store large number of data of similar type. If we have


large number of similar kind of variable then it is very difficult to
remember name of all variables and write the program. For example:

//PROCESS ONE
#include<stdio.h>
int main(){
int ax=1;
int b=2;
int cg=5;
int dff=7;
int am=8;
int raja=0;
int rani=11;
int xxx=5;
int yyy=90;
int p;
int q;
int r;
int avg;
avg=(ax+b+cg+dff+am+raja+rani+xxx+yyy+p+q+r)/12;
printf("%d",avg);
return 0;
}
If we will use array then above program can be written as:

//PROCESS TWO
#include<stdio.h>
int main(){
int arr[]={1,2,5,7,8,0,11,5,50};
int i,avg;

for(int i=0;i<12;i++){
avg=avg+arr[i];
}
printf("%d",avg/12);
return 0;
}

Question: Write a C program to find out average of 200 integer number


using process one and two.

(b) We want to store large number of data in continuous memory


location. Array always stores data in continuous memory location.

(q) What will be output when you will execute the following program?
#include<stdio.h>
int main(){
int arr[]={0,10,20,30,40};
char *ptr=arr;
arr=arr+2;
printf("%d",*arr);
return 0;
}

Advantage of using array:

1. An array provides singe name .So it easy to remember the name of


all
element
of
an
array.

2. Array name gives base address of an array .So with the help
increment operator we can visit one by one all the element of an
array.

3. Array has many application data structure.

Array

of

pointers

in

c:

Array whose content is address of another variable is known as


array pointers. For example:
#include<stdio.h>
int main(){
float a=0.0f,b=1.0f,c=2.0f;
float * arr[]={&a,&b,&c};
b=a+c;
printf("%f",arr[1]);
return 0;
}

Complex arrays in c

1. Declaration of an array of size five which can store address such


functions whose parameter is void data type and return type is also
void data type:

void ( arr[5] )( );

2. Declaration of an array of size five which can store address such


function which has two parameter of int data type and return type is
float data type:

float ( arr[5] )(int, int);

3. Declaration of an array of size two which can store the address of


printf or sacanf function:

int ( arr[2] )( const char *, );

Note: prototype of printf function is:

Different type of array in c:

(a) Array of integer

int printf( const char*, );

An array which can hold integer data type is known as array of


integer.

(b) Array of character


An array which can hold character data type is known as array of
character.

(c) Array of union


An array which can hold address of union data type is known as
union
of
integer.

For example:

(1) What will be output when you will execute the following program?
#include<stdio.h>
union A{
char p;
float const * const q;
};
int main(){
union A arr[10];
printf("%d",sizeof arr);
return 0;
}

Output: 20

(2) What will be output when you will execute the following program?

#include<stdio.h>
union A{
char character;
int ascii;
};
int main(){
union A arr[2]={{65},{'a'}};
printf("%c %c",arr[0],arr[1]);
return 0;
}

Output: A a

(d) Array of structure


An array which can hold address of structure data type is known as
array of structure. For example:

(1) What will be output when you will execute the following program?
#include<stdio.h>
typedef struct stu{
char * name;
int roll;

}s;
int main(){
s arr[2]={{"raja",10},{"rani",11}};
printf("%s %d",arr[0]);
return 0;
}

Output: raja 10

(2) What will be output when you will execute the following program?
#include<stdio.h>
struct A{
int p;
float q;
long double *r;
};
int main(){
struct A arr[10];
printf("%d",sizeof arr);
return 0;
}

Output: 80

(e) Array of string

An array which can hold integer data type is known as array of


integer.

(f) Array of array


An array which can hold address of another array is known as array
of array.

(g) Array of address of integer


An array which can hold address integer data type is known as
array of address of integer.

Pointer

to

array

A pointer which holds base address of an array or address of any


element of an array is known as pointer to array. For example:

(a)
#include<stdio.h>
int main(){
int arr[5]={100,200,300};
int *ptr1=arr;
char *ptr2=(char *)arr;
printf("%d
return 0;
}

%d",*(ptr1+2),*(ptr2+4));

Output: 300

44

(b)
#include<stdio.h>
int main(){
static int a=11,b=22,c=33;
int * arr[5]={&a,&b,&c};
int const * const *ptr=&arr[1];
--ptr;
printf("%d ",**ptr);
return 0;
}

Output: 11

Você também pode gostar