GATE CSE
First time here? Checkout the FAQ!
x
+2 votes
89 views
#include

int main()

{

char *x;

x = (char *) &a;

a = 512;

x[0] = 1;

x[1] = 2;

printf("%d\n",a);

return 0;

}

What is the output of above program?

(a) Machine dependent

b) 513

(c) 258

(d) Compiler Error
asked in Programming by Veteran (12.9k points)   | 89 views
Obvio it will be compilation error , you are using undeclared a
............................

1 Answer

+1 vote

Assuming a is declared first.

  • In a system that uses little-endian (Like  Intel x86 processors ) the answer should be $513$
  • In a system that uses big-endian (Like IBM z/Architecture mainframes ) the answer should be a very large value.

 Answer should be (a) Machine dependent

answered by Veteran (45.6k points)  
debashish,how do u know that it is endian notation??
and if  'a' is a int variable then how will x[0] and x[1] work??

i mean a is an integer type variable,so what will be x[0] or x[1] refer to??

@Akriti

A prerequisite to know what is happening http://gateoverflow.in/4273/char-pointer-to-access-an-int

thanks @kapil..


Top Users Apr 2017
  1. akash.dinkar12

    3782 Points

  2. Divya Bharti

    2696 Points

  3. Deepthi_ts

    2270 Points

  4. rude

    2142 Points

  5. Tesla!

    1888 Points

  6. Sanjay Sharma

    1692 Points

  7. Debashish Deka

    1668 Points

  8. Shubham Sharma 2

    1610 Points

  9. Prashant.

    1580 Points

  10. Arjun

    1570 Points

Monthly Topper: Rs. 500 gift card

22,135 questions
28,125 answers
63,467 comments
24,261 users