Is each of the following definitions valid or invalid If any
Is each of the following definitions valid or invalid? If any is invalid state why?
int ivar;
int *iptr
int ivar, *ptr = &ivar;
float fvar;
int *ivar = &fvar;
int nums [50], *iptr = nums;
int *iptr = &ivar;
int ivar;
Solution
===================================================================
int ivar;
----------
Answer:
----------
Valid
--------------
Explanation:
--------------
int ivar; is a valid defination , it states declaring a ivar variable of type
int.
===================================================================
int *iptr;
----------
Answer:
----------
Valid
--------------
Explanation:
--------------
int *iptr; is a valid defination, it states declaring *iptr variable of type integer pointer.
===================================================================
int ivar, *ptr = &ivar;
----------
Answer:
----------
Valid
--------------
Explanation:
--------------
int ivar, *ptr = &ivar; is a valid defincation.
It states ivar variable of type integer and
*ptr of type integer pointer holding address of ivar variable.
For Example: if ivar = 5 then *ptr value also 5. Since *ptr is holding the address of ivar.
===================================================================
float fvar;
----------
Answer:
----------
Valid
--------------
Explanation:
--------------
float fvar; is valid defination. it states declaring fvar variable of type float.
===================================================================
int *ivar = &fvar;
----------
Answer:
----------
Invalid
--------------
Explanation:
--------------
int *ivar = &fvar; is a invalid defination, Since here *ivar pointer of type integer.
Which can not hold the address of type float. hence the defination is invalid.
===================================================================
int nums [50], *iptr = nums;
----------
Answer:
----------
Valid
--------------
Explanation:
--------------
int nums [50], *iptr = nums; is valid defination, Since nums is of type integer array
and *iptr of type integer pointer, Which is holding starting address of array.
For Example: if nums [2] ={1,2} then *iptr value printed is 1. Since *iptr is holding the base address of
integer array nums.
===================================================================
int *iptr = &ivar;
----------
Answer:
----------
Valid
--------------
Explanation:
--------------
int *iptr = &ivar; is valid defination since it is holding the address of the ivar of type integer.
Consider initial declarion for ivar is int ivar;
===================================================================
int ivar;
----------
Answer:
----------
Valid
--------------
Explanation:
--------------
int ivar; is a valid defination , it states declaring a ivar variable of type
int.
===================================================================


