C Programming - Arrays - Discussion

Discussion Forum : Arrays - Find Output of Program (Q.No. 8)
8.
What will be the output of the program ?
#include<stdio.h>

int main()
{
    int arr[1]={10};
    printf("%d\n", 0[arr]);
    return 0;
}
1
10
0
6
Answer: Option
Explanation:

Step 1: int arr[1]={10}; The variable arr[1] is declared as an integer array with size '2' and it's first element is initialized to value '10'(means arr[0]=10)

Step 2: printf("%d\n", 0[arr]); It prints the first element value of the variable arr.

Hence the output of the program is 10.

Discussion:
17 comments Page 2 of 2.

Arup said:   1 decade ago
arr[i] = i[arr].
So it is printing 10
Here it is given arr[1] = {10} that means arr[1] = {10,0}
So arr[0] = 10 and arr[1] = 0;

Murthy said:   1 decade ago
for(i=o;i<n;i++)
printf("%d",a[i]);
and
for(i=0;i<n;i++)
printf("d",i[a]);
both gives the same value...
Someone please clarify this problem with how address calculation happens?

Rupinder said:   1 decade ago
Here 0 acts as a pointer pointing to zeroth element of an array named arr.

Geetha said:   1 decade ago
Yes. If it is arr[1]=10; (without brackets) means arr[0]=0 and arr[1]=10.

Vikarm G said:   1 decade ago
Yes, the array is of size '1'

Krutika said:   1 decade ago
It is the same as declaring an array of a number of variables. Here it is an array of size 1. The usual syntax is used for initialising the array.

Soumya K.K said:   2 decades ago
How is this possible?

#include<stdio.h>

int main()
{
int arr[1]={10};
printf("%d\n", 0[arr]);
return 0;
}


Someone plz clarify.


Post your comments here:

Your comments will be displayed after verification.