90.Can we use any name in
place of argv and argc as command line arguments ?
Ans: yes we can use any user defined name in place of argc and argv;
91.What are the pointer declarations used in C?
Ans:
1- Array of pointers,e.g , int *a[10]; Array of pointers to integer
2-Pointers to an array,e.g , int (*a)[10]; Pointer to an array of into
3-Function returning a pointer,e.g, float *f( ) ; Function returning a pointer to float
4-Pointer to a pointer ,e.g, int **x; Pointer to apointer to int
5-pointer to a data type ,e.g, char *p; pointer to char
92.Differentiate between a constant pointer and pointer to a constant ?
Ans:
const char *p; //pointer to a const character.
char const *p; //pointer to a const character.
char * const p; //const pointer to a char variable.
const char * const p; // const pointer to a const character.
93.Is the allocated space within a function automatically deallocated when the function returns?
Ans: No pointer is different from what it points to .Local variables including local pointers
variables in a function are deallocated automatically when function returns.,But in case of a
local pointer variable ,deallocation means that the pointer is deallocated and not the block of
memory allocated to it.Memory dynamically allocated always persists until the allocation is freed
or the program terminates.
94.Discuss on pointer arithmetic?
Ans:
1- Assignment of pointers to the same type of pointers.
2- Adding or subtracting a pointer and an integer.
3-subtracting or comparing two pointer.
4-incrementing or decrementing the pointers pointing to the elements of an array.When a pointer
to an integer is incremented by one ,the address is incremented by two.It is done automatically
by the compiler.
5-Assigning the value 0 to the pointer variable and comparing 0 with the pointer.The pointer
having address 0 points to nowhere at all.
95.What are the invalid pointer arithmetic ?
Ans:
i) adding ,multiplying and dividing two pointers.
ii) shifting or masking pointer.
iii) Addition of float or double to pointer.
iv) Assignment of a pointer of one type to a pointer of another type ?
96.What are the advantages of using array of pointers to string instead of an array of strings?
Ans:
i) Efficient use of memory.
ii) Easier to exchange the strings by moving their pointers while sorting.
97.Are the expressions *ptr ++ and ++ *ptr same ?
Ans: No ,*ptr ++ increments pointer and not the value pointed by it.Whereas ++ *ptr
increments the value being pointed to by ptr.
98.What would be the equivalent pointer expression foe referring the same element as
a[p][q][r][s] ?
Ans : *( * ( * ( * (a+p) + q ) + r ) + s)
99.Are the variables argc and argv are always local to main ?
Ans: Yes they are local to main.
100.Can main () be called recursively?
Ans: Yes any function including main () can be called recursively.
101.Can we initialize unions?
Ans: ANSI Standard C allows an initializer for the first member of a union. There is no standard way
of initializing any other member (nor, under a pre-ANSI compiler, is there generally any way of
initializing a union at all).
102.What’s the difference between these two declarations?
Ans: struct x1 { ... };
typedef struct { ... } x2;
The first form declares a structure tag; the second declares a typedef. The main difference is
that the second declaration is of a slightly more abstract type.its users don't necessarily know
that it is a structure, and the keyword struct is not used when declaring instances of it.
Ans: yes we can use any user defined name in place of argc and argv;
91.What are the pointer declarations used in C?
Ans:
1- Array of pointers,e.g , int *a[10]; Array of pointers to integer
2-Pointers to an array,e.g , int (*a)[10]; Pointer to an array of into
3-Function returning a pointer,e.g, float *f( ) ; Function returning a pointer to float
4-Pointer to a pointer ,e.g, int **x; Pointer to apointer to int
5-pointer to a data type ,e.g, char *p; pointer to char
92.Differentiate between a constant pointer and pointer to a constant ?
Ans:
const char *p; //pointer to a const character.
char const *p; //pointer to a const character.
char * const p; //const pointer to a char variable.
const char * const p; // const pointer to a const character.
93.Is the allocated space within a function automatically deallocated when the function returns?
Ans: No pointer is different from what it points to .Local variables including local pointers
variables in a function are deallocated automatically when function returns.,But in case of a
local pointer variable ,deallocation means that the pointer is deallocated and not the block of
memory allocated to it.Memory dynamically allocated always persists until the allocation is freed
or the program terminates.
94.Discuss on pointer arithmetic?
Ans:
1- Assignment of pointers to the same type of pointers.
2- Adding or subtracting a pointer and an integer.
3-subtracting or comparing two pointer.
4-incrementing or decrementing the pointers pointing to the elements of an array.When a pointer
to an integer is incremented by one ,the address is incremented by two.It is done automatically
by the compiler.
5-Assigning the value 0 to the pointer variable and comparing 0 with the pointer.The pointer
having address 0 points to nowhere at all.
95.What are the invalid pointer arithmetic ?
Ans:
i) adding ,multiplying and dividing two pointers.
ii) shifting or masking pointer.
iii) Addition of float or double to pointer.
iv) Assignment of a pointer of one type to a pointer of another type ?
96.What are the advantages of using array of pointers to string instead of an array of strings?
Ans:
i) Efficient use of memory.
ii) Easier to exchange the strings by moving their pointers while sorting.
97.Are the expressions *ptr ++ and ++ *ptr same ?
Ans: No ,*ptr ++ increments pointer and not the value pointed by it.Whereas ++ *ptr
increments the value being pointed to by ptr.
98.What would be the equivalent pointer expression foe referring the same element as
a[p][q][r][s] ?
Ans : *( * ( * ( * (a+p) + q ) + r ) + s)
99.Are the variables argc and argv are always local to main ?
Ans: Yes they are local to main.
100.Can main () be called recursively?
Ans: Yes any function including main () can be called recursively.
101.Can we initialize unions?
Ans: ANSI Standard C allows an initializer for the first member of a union. There is no standard way
of initializing any other member (nor, under a pre-ANSI compiler, is there generally any way of
initializing a union at all).
102.What’s the difference between these two declarations?
Ans: struct x1 { ... };
typedef struct { ... } x2;
The first form declares a structure tag; the second declares a typedef. The main difference is
that the second declaration is of a slightly more abstract type.its users don't necessarily know
that it is a structure, and the keyword struct is not used when declaring instances of it.
No comments:
Post a Comment