C Programming Pointers for int, float and char

C Pointers

A pointer is a variable that holds the memory address of another variable (direct address of the memory location).

Every byte in the computer's memory has an address, so pointer holds the address through which variable can be directly accessed.

Addresses are just numbers as our house numbers, and address starts at NULL and goes up from 1,2, 3 etc..

Need to declare a pointer before using it to store any variable address.

Let us consider below decalration,

int a = 25;
int *b;
b = &a;

a is the integer variable and reserves the space in memory to hold integer value 25.

b is the integer pointer and can contain the address of integer variable a.

Value at address contained in b is an integer.

Similarly need to declare b as float pointer if needs to contain the address of float variable.

int, float, char Pointers in C Program

This c program explains how to use the pointers with int, float and character data types.

#include<stdio.h>
                                                                                
void main()                                                                     
{                                                                               
    char ch, *chp;                                                              
    int i, *ip;                                                                 
    float ff, *fp;                                                              
    printf("Enter character: ");                                                
    scanf("%c", &ch);                                                           
                                                                                
    printf("\nEnter integer: ");                                                
    scanf("%d", &i);                                                            
                                                                                
    printf("\nEnter float: ");                                                  
    scanf("%f", &ff);                                                           
                                                                                
    chp = &ch;                                                                  
    ip = &i;                                                                    
    fp = &ff;                                                                   
                                                                                
    printf("\nAddress contained in chp: %u", chp);                              
    printf("\nAddress contained in ip: %u", ip);                                
    printf("\nAddress contained in fp: %u", fp);                                
                                                                                
    printf("\nValue of ch using chp pointer: %c", *chp);                        
    printf("\nValue of i using ip pointer: %d", *ip);                           
    printf("\nValue of ff using fp pointer: %f", *fp);                          
}     
Output:
$ cc c-pointers.c
$ ./a.out 
Enter character: E

Enter integer: 34

Enter float: 55.5

Address contained in chp: 274340199
Address contained in ip: 274340192
Address contained in fp: 274340188
Value of ch using chp pointer: E
Value of i using ip pointer: 34
Value of ff using fp pointer: 55.500000

C Pointers Type Casting Example:

int i=25;
char *chp;
chp = (char *) &i;

2 bytes used to store integer value and for character 1 bytes. during char * type casting, considers only first 1 byte of data and not another byte.

Example:

#include                                                               
                                                                                
void main()                                                                     
{                                                                               
    char ch, *chp, *fp1, *fp2;                                                  
    int i, *ip;                                                                 
    float ff, *fp;                                                              
    printf("Enter character: ");                                                
    scanf("%c", &ch);                                                           
                                                                                
    printf("\nEnter integer: ");                                                
    scanf("%d", &i);                                                            
                                                                                
    printf("\nEnter float: ");                                                  
    scanf("%f", &ff);                                                           
                                                                                
    chp = &ch;                                                                  
    ip = &i;                                                                    
    fp = &ff;                                                                   
    fp1 = (char *) &ch;                                                         
    fp2 = (char *) &i;                                                          
    printf("\nAddress contained in chp: %u", chp);                              
    printf("\nAddress contained in ip: %u", ip);                                
    printf("\nAddress contained in fp: %u", fp);                                
    printf("\nAddress contained in fp: %u", fp1);                               
    printf("\nAddress contained in fp: %u", fp2);                               
                                                                                
    printf("\nValue of ch using chp pointer: %c", *chp);                        
    printf("\nValue of i using ip pointer: %d", *ip);                           
    printf("\nValue of ff using fp pointer: %f", *fp);                          
    printf("\nValue of ch using fp1 pointer: %c", *fp1);                        
    printf("\nValue of i using fp2 pointer: %c", *fp2);                         
}  
Output:
$ cc c-pointers.c
[jaganathan@dhcp35-211 cprog]$ ./a.out 
Enter character: E

Enter integer: 33

Enter float: 65.4

Address contained in chp: 1407846903
Address contained in ip: 1407846896
Address contained in fp: 1407846892
Address contained in fp: 1407846903
Address contained in fp: 1407846896
Value of ch using chp pointer: E
Value of i using ip pointer: 33
Value of ff using fp pointer: 65.400002
Value of ch using fp1 pointer: E
Value of i using fp2 pointer: !

What will happen if we use incorrect pointer type?

Incorrect values (garbage values) returned for incorrect pointers.

Warning message is thrown as 'incompatible pointer type' in compilation.

#include<stdio.h>
                                                                                
void main()                                                                     
{                                                                               
    char ch, *chp;                                                              
    int i, *ip;                                                                 
    float ff, *fp;                                                              
    printf("Enter character: ");                                                
    scanf("%c", &ch);                                                           
                                                                                
    printf("\nEnter integer: ");                                                
    scanf("%d", &i);                                                            
                                                                                
    printf("\nEnter float: ");                                                  
    scanf("%f", &ff);                                                           
                                                                                
    chp = &i;                                                                   
    ip = &ch;                                                                   
    fp = &ff;                                                                   
                                                                                
    printf("\nAddress contained in chp: %u", chp);                              
    printf("\nAddress contained in ip: %u", ip);                                
    printf("\nAddress contained in fp: %u", fp);                                
                                                                                
    printf("\nValue of ch using chp pointer: %c", *chp);                        
    printf("\nValue of i using ip pointer: %d", *ip);                           
    printf("\nValue of ff using fp pointer: %f", *fp);                          
}   
Output:
$ cc c-pointers.c
c-pointers.c: In function ‘main’:
c-pointers.c:17:9: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]
     chp = &i;
         ^
c-pointers.c:18:8: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]
     ip = &ch;
        ^
$ ./a.out 
Enter character: E

Enter integer: 43

Enter float: 44.3

Address contained in chp: 3399891056
Address contained in ip: 3399891063
Address contained in fp: 3399891052
Value of ch using chp pointer: +
Value of i using ip pointer: -1506251707
Value of ff using fp pointer: 44.299999[

C Program Examples

C program to cmpute matrix addition using two dimensional array

C program to cmpute matrix subtraction using two dimensional array

C program to cmpute matrix multiplication using two dimensional array

C program to compute different order of matrix multiplication

C program to generate identity matrix for required rows and columns

C program to validate whether matrix is identity matrix or not

C program to validate whether matrix is sparse matrix or not

C program to validate whether matrix is dense matrix or not

C program to generate string as matrix diagonal characters using two dimesional array

C Program to find number of weeks, months and years from days

C Program To Implement Linked List and Operations

C Program To Implement Sorted Linked List and Operations

C Program to Reverse the Linked List

C Program to Stack and Operations using Linked List

C Program to Queue and Operations using Linked List

C Program to calculate multiplication of two numbers using pointers

C Program To Calculate Median

C Program To Calculate Standard Deviation

C Program For Fahrenheit To Celsius Conversion

C Program To Calculate Average

C Program For Quadratic Equations

C Program To Check Character Type

C Program To Find Largest Of Three Values

C Program To Find Max Value In Array

C Program to Find Min Value In Array

C Program to Print Multiplication Table

C Program for Frequency Counting

C Program to read a line of text

C Program To Find ASCII Value For Any Character

C Program To Find A Character Is Number, Alphabet, Operator, or Special Character

C Program To Find Reverse Case For Any Alphhabet using ctype functions

C Program To Find Number Of Vowels In Input String

C Program Pointers Example Code

C Program To Find Leap Year Or Not

C Program To Swap Two Integers Using Call By Reference

C Program To Swap Two Integers Without Using Third Variable

C Program To List Prime Numbers Upto Limit

C Program To List Composite Numbers Upto Limit

C Program To Calculate Compound Interest

C Program To Calculate Depreciation Amount After of Before Few Years

C Program To Calculate Profit Percentage

C Program To Calculate Loss Percentage

C Program To Find String Is Polindrome Or Not

C Program To Find Factorial of a Number

C Program To Check Number is a Polindrome or Not

C Program To Generate Random Integers

C Program To Generate Random Float Numbers

C Program to find Square Root of a Number

C Program to find Area of a Rectangle

C Program to find Perimeter of a Rectangle

C Program to find Area of a Square

C Program to find Area of a Triangle

C Program to find Area of a Parallelogram

C Program to find Area of a Rhombus

C Program to find Area of a Trapezium

C Program to find Area of a Circle and Semi-circle

C Program to find Circumference of a Circle and Semi-circle

C Program to find length of an arc

C Program to find Area of a Sector

C Program to find string length for list of strings

C Program to find the character at index in a string

C Program to compare characters

C Program to find eligible to vote or not

C Program to get system current date and time on linux

C Program to get positive number

C Program to implement calculator

C Program to implement banking system

C Program to find sum of number

C Program for array traversal using pointers

C Program for array traversal in reverse order using pointers

C Program to find particular element occurrences count in array

C Program to find even elements occurrences count in array

C Program to find odd elements occurrences count in array

C program to find week day in word from week day in number using two dimentsional array

C program to find month in word from month in number using pointers

C program to compute PMT for a loan

C program to compute EMI and round up using floor

C program to compute EMI and round up using ceil

C program to compute the EMI table with Interest, Principal and Balance

C program to get multiple line of string

C program to find nth element in array using pointers

C program to compute the volume of a cube

C program to compute the volume of a box

C program to compute the volume of a sphere

C program to compute the volume of a triangular prism

C program to compute the volume of a cylinder

C Program to Compute Perimeter of Square

C Program to compute the perimeter of triangle

C Program to compute the discount rate

C Program to compute the sales tax

C program to add, delete, search a record or show all using binary file

C program to add, delete, search a record or show all using text file

Privacy Policy  |  Copyrightcopyright symbol2020 - All Rights Reserved.  |  Contact us   |  Report website issues in Github   |  Facebook page   |  Google+ page

Email Facebook Google LinkedIn Twitter
^