C Programming - Pointers - Discussion
Discussion Forum : Pointers - Find Output of Program (Q.No. 23)
23.
If the size of integer is 4bytes, What will be the output of the program?
#include<stdio.h>
int main()
{
int arr[] = {12, 13, 14, 15, 16};
printf("%d, %d, %d\n", sizeof(arr), sizeof(*arr), sizeof(arr[0]));
return 0;
}
Discussion:
22 comments Page 2 of 3.
Jignesh said:
1 decade ago
What if the array was declared as
int *arr[] = { 1,2,3,4,5 } ;
What would sizeof(arr) return ?
int *arr[] = { 1,2,3,4,5 } ;
What would sizeof(arr) return ?
Pondey Ramu said:
2 decades ago
The array elements are 5 and the size is 4 then multiplying both we get 20 that is the size of the array and second one is size of the each array element and third one is size of the first array element that is 4 only thats why anwer 20,4,4
Maya said:
1 decade ago
@nirlep:
It is given in the question. that int is of 4 bytes, so multiply by 4 and not 2
It is given in the question. that int is of 4 bytes, so multiply by 4 and not 2
Soumya said:
1 decade ago
Thank you pondey ramu.
K SURESH said:
1 decade ago
THANK YOU PRATHYUSHA
Nirlep said:
1 decade ago
Why multiply by 4 it should be 2?
Narendra said:
1 decade ago
The array elements are 5 each of size of 4 bytes. So it is 20,
where as second one is sizeof(*arr) means i.e pointer .all pointers occupies 4 bytesin 32 bit compiler so it is 4 bytes
and last one is same.
In 16 bit compiler it is 10 2 2;
where as second one is sizeof(*arr) means i.e pointer .all pointers occupies 4 bytesin 32 bit compiler so it is 4 bytes
and last one is same.
In 16 bit compiler it is 10 2 2;
Viraj said:
1 decade ago
Output will be 10 2 2 on 16 bit compiler.
Srinivas.L said:
1 decade ago
The array elements are 5 each of size of 5 bytes. So it is 20.
Where as the second one is it will prints the address to store the int data type array so its value is 4.
And in last one is also it will prints the address of the arr[0], which is integer data type so its value is 4. So the final answer is 20 4 4.
Where as the second one is it will prints the address to store the int data type array so its value is 4.
And in last one is also it will prints the address of the arr[0], which is integer data type so its value is 4. So the final answer is 20 4 4.
Pradip somase said:
2 decades ago
Thank you Pondey Ramu for description.
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers