40. Predict the output or error(s) of the following c code

1
2
3
4
5
6
7
8
9
10
#include "stdio.h"
main()
{
	char s[]={'a','b','c','\n','c','\0'};
	char *p,*str,*str1;
	p=&s[3];
	str=p;
	str1=s;
	printf("%d",++*p + ++*str1-32);
}

Click here to view the answer

Answer:“p is pointing to ‘\n’ and that is incremented by one.” the ASCII value of ‘\n’ is 10. then it is incremented to 11. the value of ++*p is 11. ++*str1 me

Answer:“str1 is pointing to ‘a’ that is incremented by 1 and it becomes ‘b’. ASCII value of ‘b’ is 98. both 11 and 98 is added and result is subtracted from 32.
i.e. (11+98-32)=77(“M”);

Leave a Reply