1,530 views
1 votes
1 votes
What will be the output of this program?

#include<stdio.h>
int main()
{
typedef static int *i;
int j;
i a = &j;
printf("%d", *a);
return 0;
}

2 Answers

0 votes
0 votes
I think static is not a qualifier but instead it is storage class specifier.It is not part of TYPE.

So error should come.
0 votes
0 votes

Syntactically, typedef is like the storage classes extern, static, etc. /6.7 k&r

A storage class tells the compiler about the life of a variable.

A typedef is an interpretation of a memory location, means what value it is going to hold.

Thus, you can not combined the type with any storage class although syntactically it look like a storage class. typedef have nothing to do with the storage(life cycle of any variable).

Related questions

0 votes
0 votes
1 answer
1
Debargha Mitra Roy asked 2 days ago
39 views
#include <stdio.h int main() { int a[3] = {1, 3, 5, 7, 9, 11}; int *ptr = a[0]; ptr += sizeof(int); printf("%d", *ptr); return 0; }(Assume size of int to be $2$ bytes.)T...
0 votes
0 votes
2 answers
3
Debargha Mitra Roy asked Apr 10
99 views
What is the output of the below code?#include <stdio.h void main() { static int var = 5; printf("%d ", var ); if (var) main(); }a. 1 2 3 4 5b. 1c. 5 4 3 2 1d. Error
1 votes
1 votes
1 answer
4
SSR17 asked Feb 29
251 views
#include <stdio.h int main() { int i = -1; int x = (unsigned char)i; printf("%d", x); return 0; }output is 255 , but please explain how