GATE CSE
First time here? Checkout the FAQ!
x
+2 votes
84 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.5k points)   | 84 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 (43.8k 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 Mar 2017
  1. rude

    4758 Points

  2. sh!va

    3014 Points

  3. Rahul Jain25

    2910 Points

  4. Kapil

    2636 Points

  5. Debashish Deka

    2450 Points

  6. 2018

    1514 Points

  7. Vignesh Sekar

    1422 Points

  8. Akriti sood

    1322 Points

  9. Bikram

    1286 Points

  10. Sanjay Sharma

    1076 Points

Monthly Topper: Rs. 500 gift card

21,494 questions
26,815 answers
61,058 comments
23,068 users