ARRAYS IN C












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.






  1.  AT COMPILE TIME
  2.  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 };






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 >.

















FOR MORE C PROGRAMS AND TUTORIALS PLEASE SUBSCRIBE MY YOUTUBE CHANNEL














CODE MASTER
























Comments