C Programming Pointers for int, float and char

C Pointers

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

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 Programming Examples

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

Privacy Policy  |  Copyright@2017 - All Rights Reserved.  |  Contact us   |  Report website issues in Github   |  Facebook page   |  Google+ page

Free online programming tutorials

Email Facebook Google LinkedIn Twitter
^