Open In App

Output of C Programs | Set 15

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

Predict the output of below C programs. 
Question 1

C




#include<stdio.h>
int main(void)
{
  int a = 1;
  int b = 0;
  b = ++a + ++a;
  printf("%d %d",a,b);
  getchar();
  return 0;
}


Output: 3 6

Explanation: ++ has precedence over + and operates right to left. Hence rightmost ++a gives a=2 and the ++a left of it gives a=3. Now, while evaluating, b=3+3. As after the second ++a, we have a=3. Hence b=3+3=6 and a=3. Hence the output.
Question 2 

C




#include<stdio.h>
 
int main()
{
  int a[] = {1, 2, 3, 4, 5, 6};
  int *ptr = (int*)(&a+1);
  printf("%d ", *(ptr-1) );
  getchar();
  return 0;
}


Output: 6 
&a is address of the whole array a[]. If we add 1 to &a, we get “base address of a[] + sizeof(a)”. And this value is typecasted to int *. So ptr – 1 points to last element of a[] 
Please write comments if you find any of the answers/explanations incorrect, or you want to share more information about the topics discussed above.
 


Last Updated : 29 Oct, 2020
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads