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.

Payal said:   9 years ago
@MOON. It will be 6 if you will give 7 then it will print garbage value.

int main()
{
int arr[7] = {1,2,3,4,5,6,7};
printf("%d\n",6[arr]);
return(0);
}

Output: 7

ASHISH BURMAN said:   9 years ago
Here, arr[1]=10;

It means that the value 10 is initialized to an array arr[] with index 1. The values arr[0] and arr[2] is not initialized if we want to access those elements then it will give the garbage values.
(1)

Raji said:   8 years ago
Is arr[i] and i[arr] same?

Prakash said:   8 years ago
Yes, arr[i] and i[arr] is same.

Noel said:   7 years ago
I think there is an error, arr[1], initializes an array with only 1 element, not two.

Nitin singh chouhan said:   7 years ago
I am getting this output is 1010 why?

OmarTarek said:   6 years ago
arr[1]={10};
Is the same as
arr[3]={5,69};
The first example is saved in memory like this;

arr[0]=10 and arr[1]=0 why equal to zero this is referred to the basics of the array you initialize the array in the same line of declaration the non initialized elements will be initialized by def to zero

The second example will be saved in memory like this;
arr[0]=5, arr[1]=69 and arr[2]= 0
And also to print contents of any array using for loop as a example
for (int i=0;i<3;i++)
printf("%d\n", arr[i]); //or printf("%d\n", i[arr]);

I hope you understand my simple explanation


Post your comments here:

Your comments will be displayed after verification.