here the value will be 3.
EXPLANATION:
here the #define macros will blindly substitute the values
in the while loop before compailation.. then when it compails...
1)we will have the expanded macros like this:
while((ptr++<&a[9]?ptr++:&a[9])<&a[8])
i++;
hrer when the loop runs for the first time ptr will
increment by 2 since it is a integer type, which allocates 2
bytes.
first see the layout:
10 12 14 16 18 20 22 24 26 28 30 .....
| | | | | | | | | | | |
0 1 2 3 4 5 6 7 8 9 10 ....
0,1,2,3 represents index values...
10,12,14 represents addresses....
so the ptr variable will have the base address of array a.
when comin to while loop, it gets incremented to the next
location , address is 12,and go and check wit the address of
&a[9] in our case it is 28. so naturally it wil become true
so it executes the statement after ? symbol.. again in that
ptr++ is given so again ptr will be incremented to 14.. so
14 will be compared with &a[8] ,likely to be 26. it is TRUE
so the whole loop is true ,so i gets incremented so i=1.
next time ptr adds to 16 and then 16<28 and again ptr gets
incremented to 18 and 18<26 and whole while becomes true so
i will become 2.
similarly it will again increments ptr to 20 an dthis
becomes true an ptr again gets incremented to 22 and it
checks whether 22<26! yes, it will increment i to 3.
IMPORTANT:
after that it increments ptr to 24 and executes the
operation after ? operator and again ptr will have 26, this
26 is checked with 26 (&a[8]) the whole while loop becomes
false...
so it wont go to i++, it will printf the printf statement so
i=3.
1. Write the function int countchtr(char string[ ], int ch);
which returns the number of times the character ch appears
in the string.
Example, the call countchtr(“She lives in NEWYORK”, ‘e’)
would return 3.
given the piece of code
int a[50];
int *pa;
pa=a;
to access the 6th element of the array which of the
following is incorrect?
a.*(a+5)
b.a[5]
c.pa[5]
d.*(*pa + 5)
What is true about the following
C Functions
a.Need not return any value
b.Should always return an integer
c.Should always return a float
d.Should always return more than one value.
pgm to reverse string using arrays i.e god is love becomes
love is god)
(assumption:only space is used for seperation of words)
no addtional memory used.i.e no temporary arrays can used.