Why Array Index starts from Zero
Answers were Sorted based on User's Feedback
Answer / pooja sonawane
the index of array, which is of the form a[i], is converted
by the compiler in the form [a+i]. So, the index of first
element is zero because [a+0] will give 'a' & the first
array element can be accessed. Due to this, we can also
access the array elements as'i[a]' instead of 'a[i]' , &
this will not produce an error.
Is This Answer Correct ? | 183 Yes | 48 No |
Answer / chandan singh from niit
This boils down to the concept of Binary digits. Take an
array size of 64 for example. We start from 0 and end at
63. We require 6 bits.But, if we were to start from 1 and
end at 64, we would require 7 bits to store the same
number, thus increasing the storage size.
Is This Answer Correct ? | 111 Yes | 77 No |
Answer / rck
The complier treats a[0] as *(a+0) ie *(a+0) (array name is
the base address of that array)gives the first element of
the array.
If the array starts from 1 a[1] is treated as *(a+1) gives
the second element of array.The first element is missing.so
array always starts from 0.
Is This Answer Correct ? | 35 Yes | 14 No |
Answer / ashish verma
The index of array, which is of the form a[i], is converted
by the compiler in the form [a+i]. So, the index of first
element is zero because [a+0] will give 'a' & the first
array element can be accessed. Due to this, we can also
access the array elements as'i[a]' instead of 'a[i]' , &
this will not produce an error.
Is This Answer Correct ? | 18 Yes | 13 No |
Answer / ranga raj.b
Array is a chunk of continues memory allocation. The arthmetic that is used by compiler to move to the next array location is StartAddress + (Index)*sizeof(int)if it is an integer array.now if we see to access the first location of the array we have to give Index =0 and for next location index =1 and so on...This is why array index start with zero.
Is This Answer Correct ? | 6 Yes | 1 No |
Answer / chetan
Both Answer ARE correct but First one is EXACT and after
that compiler is design according to that
Is This Answer Correct ? | 24 Yes | 20 No |
Answer / ashlesha
Second answer is correct. but its compiler specific to start an array index with 1 or zero.as in pascal the array index starts with '1'.
Is This Answer Correct ? | 5 Yes | 3 No |
Answer / vikas chand
yes first ans is exactly correct.
second one is wrong because in java, c# etc array index is
start with zero..
but in that case we can not write a[i] as i[a]...
because a is reference variable...
so i think first ans is exactly right......
Is This Answer Correct ? | 4 Yes | 2 No |
Answer / sabab ali khan
becouse the value of given index are multiplied by size of
datatype of array and then add in the base Address to find
address of that block which you want to access
ex.
int arr[5];
if the base address of array is 1001 then last block
address will be 1009
and if we give arr[2] then compiler calculate address like
this..
1001 + sizeof(int)* 2 = 1005
where base address = 1001
and 2 is the given index.
so the calculated address is 1005 and third block will be
access.
Is This Answer Correct ? | 7 Yes | 5 No |
what do you mean by psychic window?
What is the range of intensity of RGB
How to setup a timer?
What is the use of CObject::Dump function ?
What is the difference between the Encapsulation and Abstraction
25 Answers HCL, Invensys, TCS, Wipro,
What is difference between the TCP/IP and UDP socket
What is stack size in win32 program?
If application hangs while SendMessage is waiting for the result, how you handle it?
visual Pogramming c++ coding for create a paint application.. (Please someone help me)
Do you have an idea about MFC?
What is subclassing?
What is the base class for MFC Framework ?