ARRAYS IN C
SO FAR WE HAVE USED ONLY THE FUNDAMENTAL DATA TYPES LIKE CHAR, INT, FLOAT, DOUBLE AND VARIATIONS OF INT AND DOUBLE. THESE TYPES ARE VERY USEFUL AND THEY ARE CONSTRAINED BY THE FACT THAT THESE TYPES CAN STORE ONLY ONE VALUE AT ANY GIVEN TIME. HOW EVER WE NEED TO HANDLE A LARGE VOLUME OF DATA IN TERMS OF READING, PROCESSING AND PRINTING. IN SUCH CASE WE USE A DERIVED DATA TYPE KNOWN AS ARRAY.ARRAY
AN ARRAY IS A FIXED SIZE SEQUENCED COLLECTION OF ELEMENTS OF THE SAME DATA TYPE. IT IS SIMPLY A GROUPING OF LIKE TYPE DATA. AN ARRAY CAN BE USED TO REPRESENT A LIST OF NUMBERS, OR A LIST OF NAME.ARRAY AND STRUCTURES ARE REFERRED TO AS STRUCTURED DATA TYPES BECAUSE THEY CAN BE USED TO REPRESENT DATA VALUES THAT HAVE STRUCTURE OF SOME SORT. STRUCTURED DATA TYPES PROVIDES AN ORGANIZATION SCHEME THAT SHOWS THE RELATIONSHIP AMONG INDIVIDUAL ELEMENTS AND FACILITATE EFFICIENT DATA MANIPULATIONS. SUCH DATA TYPES ARE KNOWN AS DATA STRUCTURES.
ONE DIMENSIONAL ARRAYS
A LIST OF ITEMS CAN BE GIVEN ONE VARIABLE NAME USING ONLY ONE SUBSCRIPT AND SUCH A VARIABLE IS CALLED ONE DIMENSIONAL ARRAY.EXAMPLE :
IF WE WANT TO REPRESENT A SET OF FIVE NUMBERS ( 40, 50, 60, 70, 80 ) BY USING VARIABLE NAME AS NUMBER.
INT NUMBER [ 5 ];
COMPUTER RESERVES FIVE STORAGE LOCATION
VALUES TO THE ARRAY ELEMENT CAN BE ASSIGNED
NUMBER [ 0 ] = 40
NUMBER [ 1 ] = 50
NUMBER [ 2 ] = 60
NUMBER [ 3 ] = 70
NUMBER [ 4 ] = 80
THIS WOULD CAUSE THE ARRAY NUMBER TO STORE THE VALUES
DECLARATION OF ONE DIMENSIONAL ARRAY
LIKE ANY OTHER VARIABLE, ARRAYS MUST BE DECLARED BEFORE THEY ARE USED SO THAT THE COMPILER CAN ALLOCATE SPACE FOR THEM IN MEMORY. THE GENERAL FORM IS,TYPE VARIABLE - NAME [ SIZE ];
EXAMPLE :
FLOAT HEIGHT [ 50 ];
DECLARES THE HEIGHT TO BE AN ARRAY CONTAINING 50 REAL ELEMENTS. ANY SUBSCRIPT 0 TO 49 ARE VALID.
INITIALIZATION OF ONE DIMENSIONAL ARRAY
AFTER AN ARRAY IS DECLARED, ITS ELEMENT MUST BE INITIALIZED. OTHERWISE THEY WILL CONTAIN "GARBAGE". AN ARRAY ELEMENT CAN BE INITIALIZED BY TWO METHODS.- AT COMPILE TIME
- AT RUN TIME
COMPILE TIME INITIALIZATION
WE CAN INITIALIZE THE ELEMENTS OF ARRAYS IN THE SAME WAY AS THE ORDINARY VARIABLES WHEN THEY ARE DECLARED. GENERAL FORM IS,
TYPE ARRAY NAME [ SIZE ] = { LIST OF VALUES };
EXAMPLE :
INT NUMBER [ 3 ] = { 0,0,0 };
FOR ( I = 0; I < 100; I = I + 1 )
{
IF ( I < 50 )
SUM [ I ] = 0.0;
ELSE
SUM [ I ] = 1.0;
}
THE FIRST 50 ELEMENTS OF THE ARRAY SUM ARE INITIALIZED TO 1.0 AT RUN TIME.
TYPE ARRAY NAME [ ROW SIZE ] [ COLUMN SIZE ];
EXAMPLE :
INT SUM [10] [10];
EXAMPLE :
INT TABLE [ 2 ] [ 3 ] = { 0,0,0,1,1,1};
HERE THE INITIALIZATION IS DONE BY ROW BY ROW. THE ABOVE STATEMENT CAN BE EQUIVALENTLY WRITTEN AS,
INT TABLE [ 2 ] [ 3 ] = { { 0,0,0 },{ 1,1,1 } }
TYPE ARRAY NAME [ S1 ] [ S2 ] [ S3 ].................[ SN ];
EXAMPLE :
INT SURVEY [ 3 ] [ 5 ] [ 12 ];
FLOAT TABLE [ 5 ] [ 4 ] [ 5 ] [ 3 ];
IN C IT IS POSSIBLE TO ALLOCATE MEMORY TO ARRAYS AT RUN TIME IS KNOWN AS DYNAMIC MEMORY ALLOCATION AND THE ARRAYS CREATED AT RUN TIME ARE CALLED DYNAMIC ARRAYS. DYNAMIC ARRAYS ARE CREATED USING POINTER VARIABLES AND MEMORY MANAGEMENT FUNCTIONS MALLOC, CALLOC AND REALLOC. THESE FUNCTIONS ARE INCLUDED IN THE HEADER FILE < STDIO.H >.
CODE MASTER
TYPE ARRAY NAME [ SIZE ] = { LIST OF VALUES };
EXAMPLE :
INT NUMBER [ 3 ] = { 0,0,0 };
RUN TIME INITIALIZATION
AN ARRAY CAN BE EXPLICITLY INITIALIZED AT RUN TIME. THIS APPROACH IS USUALLY APPLIED FOR INITIALIZING LARGE ARRAYS.
EXAMPLE :
FOR ( I = 0; I < 100; I = I + 1 )
{
IF ( I < 50 )
SUM [ I ] = 0.0;
ELSE
SUM [ I ] = 1.0;
}
THE FIRST 50 ELEMENTS OF THE ARRAY SUM ARE INITIALIZED TO 1.0 AT RUN TIME.
TWO DIMENSIONAL ARRAYS
TWO DIMENSIONAL ARRAYS NORMALLY REPRESENT TABULAR VALUES. WE CAN THINK OF THIS TABLE AS A MATRIX CONSISTING OF ROWS AND COLUMNS. IN MATHEMATICS WE REPRESENT A PARTICULAR VALUE IN A MATRIX BY USING TWO SUBSCRIPTS SUCH AS VIJ. HERE V DENOTED ENTER MATRIX VIJ REFERS TO THE VALUE WITH THE ITH ROW AND JTH COLUMN. GENERAL FORM IS,TYPE ARRAY NAME [ ROW SIZE ] [ COLUMN SIZE ];
EXAMPLE :
INT SUM [10] [10];
INITIALIZING TWO DIMENSIONAL ARRAY
WE CAN INITIALIZE TWO DIMENSIONAL ARRAY FOLLOWING THEIR DECLARATION WITH A LIST OF INITIAL VALUES ENCLOSED IN BRACKETS.EXAMPLE :
INT TABLE [ 2 ] [ 3 ] = { 0,0,0,1,1,1};
HERE THE INITIALIZATION IS DONE BY ROW BY ROW. THE ABOVE STATEMENT CAN BE EQUIVALENTLY WRITTEN AS,
INT TABLE [ 2 ] [ 3 ] = { { 0,0,0 },{ 1,1,1 } }
MEMORY LAYOUT
THE ELEMENTS OF ALL ARRAYS AS STORED CONTINUOUSLY IN INCREASING MEMORY LOCATION LIKE SINGLE LIST.MULTI - DIMENSIONAL ARRAYS
C ALLOWS ARRAYS OF THREE OR MORE DIMENSIONS. THE EXACT LIMIT IS DETERMINED BY THE COMPILER. THE GENERAL FORM IS,TYPE ARRAY NAME [ S1 ] [ S2 ] [ S3 ].................[ SN ];
EXAMPLE :
INT SURVEY [ 3 ] [ 5 ] [ 12 ];
FLOAT TABLE [ 5 ] [ 4 ] [ 5 ] [ 3 ];
DYNAMIC ARRAYS
THE PROCESS OF ALLOCATING MEMORY AT COMPILER TIME IS KNOWN AS STATIC MEMORY ALLOCATION.IN C IT IS POSSIBLE TO ALLOCATE MEMORY TO ARRAYS AT RUN TIME IS KNOWN AS DYNAMIC MEMORY ALLOCATION AND THE ARRAYS CREATED AT RUN TIME ARE CALLED DYNAMIC ARRAYS. DYNAMIC ARRAYS ARE CREATED USING POINTER VARIABLES AND MEMORY MANAGEMENT FUNCTIONS MALLOC, CALLOC AND REALLOC. THESE FUNCTIONS ARE INCLUDED IN THE HEADER FILE < STDIO.H >.
CODE MASTER
Comments
Post a Comment