Language%20in%20C%20Interview%20Questions%20and%20Answers
Question: Suppose I have a structure having fields name, age, salary and have passed address of age to a function fun( ). How I can access the other member of the structure using the address of age?
Answer: struct emp{ char name[20] ; int age ; float salary ; } ; main( ) { struct emp e ; printf ( "nEnter name: " ) ; scanf ( "%s", e.name ) ; printf ( "nEnter age: " ) ; scanf ( "%d", &e.age ) ; printf ( "nEnter salary: " ) ; scanf ( "%f", &e.salary ) ; fun ( &e.age ) ; } fun ( int *p ) { struct emp *q ; int offset ; offset = ( char * ) ( & ( ( struct emp * ) 0 ) -> age ) - ( char * ) ( ( struct emp* ) 0 ) ; q = ( struct emp * ) ( ( char * ) p - offset ) ; printf ( "nname: %s", q -> name ) ; printf ( "nage: %d", q -> age ) ; printf ( "nsalary: %f", q -> salary ) ; } |
Is it helpful?
Yes
No
Most helpful rated by users:
- What will be the output of the following code?
void main ()
{ int i = 0 , a[3] ;
a[i] = i++;
printf ("%d",a[i]) ;
} - Why doesn't the following code give the desired result?
int x = 3000, y = 2000 ;
long int z = x * y ; - Why doesn't the following statement work?
char str[ ] = "Hello" ;
strcat ( str, '!' ) ; - How do I know how many elements an array can hold?
- How do I compare character data stored at two different memory locations?