short testarray[4][3] = { {1}, {2,3}, {4,5,6}};
printf("%d", sizeof(testarray));
Assuming a short is two bytes long, what will be printed by the above code?
short testarray[4][3] = { {1}, {2,3}, {4,5,6}};
printf("%d", sizeof(testarray));
A. 6
B. 7
C. 12
D. 24
E. It will not compile because not enough initializers are given
Answer: Option D
Solution(By Examveda Team)
The following table provides the details of standard integer types with their storage sizes and value ranges −
Type | Storage size | Value range |
---|---|---|
char | 1 byte | -128 to 127 or 0 to 255 |
unsigned char | 1 byte | 0 to 255 |
signed char | 1 byte | -128 to 127 |
int | 2 or 4 bytes | -32,768 to 32,767 or -2,147,483,648 to 2,147,483,647 |
unsigned int | 2 or 4 bytes | 0 to 65,535 or 0 to 4,294,967,295 |
short | 2 bytes | -32,768 to 32,767 |
unsigned short | 2 bytes | 0 to 65,535 |
long | 4 bytes | -2,147,483,648 to 2,147,483,647 |
unsigned long | 4 bytes | 0 to 4,294,967,295 |
Join The Discussion
Comments ( 10 )
Related Questions on C Fundamentals
What is the primary purpose of a function prototype in C?
A. Declare a variable
B. Declare a function
C. Define a function
D. Assign a value
What is the correct syntax for declaring a variable in C?
A. int variable_name;
B. variable_name = 5;
C. variable_name int;
D. int = variable_name;
thanks abhijeet !
4*3=12
12*2(int type)=24
Not proper explanation
Please Give the explaination
how can that be?
Please explain this..??
how ans d came??
kas kay he as??
How it possible?
We have already defined the array size as 4*3. So, there will be 4*3=12 short nos. stored.
Each short is two bytes long. So, 12short * 2bytes = 24 bytes [size of array]