This content originally appeared on DEV Community and was authored by Yarakaraju Jahnavi
POINTERS IN C
•Every variable is a memory location and every memory location has its address defined which can be accessed using ampersand (&) operator, which denotes an address in memory.
•A pointer is a variable whose value is the address of another variable, i.e., direct address of the memory location. Like any variable or constant, you must declare a pointer before using it to store any variable address.
•The general form of a pointer variable declaration is:
type *var-name;
Here,
-- type is the pointer's base type (it must be a valid C
datatype).
-- var-name is the name of the pointer variable.
-- * used to declare a pointer.
•Some of the valid pointer declarations are as follows −
int ip; / pointer to an integer /
double *dp; / pointer to a double /
float *fp; / pointer to a float /
char *ch / pointer to a character */
•The actual data type of the value of all pointers, whether integer, float, character, or otherwise, is the same, a long hexadecimal number that represents a memory address. The only difference between pointers of different data types is the data type of the variable or constant that the pointer points to.
USAGE OF POINTERS:
(a) We define a pointer variable.
(b) Assign the address of a variable to a pointer.
(c) Finally access the value at the address available in the pointer variable.
•This is done by using unary operator * that returns the value of the variable located at the address specified by its operand.
•Example:
#include
int main ()
{
int var = 20; /* actual variable declaration /
int *ip; / pointer variable declaration /
ip = &var; / store address of var in pointer variable*/
printf("Address of var variable: %x\n", &var );
/* address stored in pointer variable /
printf("Address stored in ip variable: %x\n", ip );
/ access the value using the pointer */
printf("Value of *ip variable: %d\n", *ip );
return 0;
}
•When the above code is compiled and executed, it produces the following result −
-- Address of var variable: bffd8b3c
-- Address stored in ip variable: bffd8b3c
-- Value of *ip variable: 20
NULL POINTERS
•It is always a good practice to assign a NULL value to a pointer variable in case you do not have an exact address to be assigned. This is done at the time of variable declaration. A pointer that is assigned NULL is called a null pointer.
•The NULL pointer is a constant with a value of zero defined in several standard libraries. Consider the following program −
•EXAMPLE
#include
int main ()
{
int *ptr = NULL;
printf("The value of ptr is : %x\n", ptr );
return 0;
}
•When the above code is compiled and executed, it produces the following result −
--The value of ptr is 0
--In most of the operating systems, programs are not permitted
to access memory at address 0 because that memory is reserved
by the operating system.
--However, the memory address 0 has special significance; it
signals that the pointer is not intended to point to an
accessible memory location. But by convention, if a pointer
contains the null (zero) value, it is assumed to point to
nothing.
--To check for a null pointer, you can use an 'if' statement as
follows −
if(ptr) /* succeeds if p is not null */
if(!ptr) /* succeeds if p is null */
This content originally appeared on DEV Community and was authored by Yarakaraju Jahnavi
Yarakaraju Jahnavi | Sciencx (2021-05-11T14:02:29+00:00) POINTERS IN C-LANGUAGE. Retrieved from https://www.scien.cx/2021/05/11/pointers-in-c-language/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.