Open In App
Related Articles

Arrow operator -> in C/C++ with Examples

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

An Arrow operator in C/C++ allows to access elements in Structures and Unions. It is used with a pointer variable pointing to a structure or union. The arrow operator is formed by using a minus sign, followed by the greater than symbol as shown below. 
Syntax:  

(pointer_name)->(variable_name)


Operation: The -> operator in C or C++ gives the value held by variable_name to structure or union variable pointer_name.
Difference between Dot(.) and Arrow(->) operator:  

  • The Dot(.) operator is used to normally access members of a structure or union.
  • The Arrow(->) operator exists to access the members of the structure or the unions using pointers.


Examples: 

  • Arrow operator in structure:

C

// C program to show Arrow operator
// used in structure
 
#include <stdio.h>
#include <stdlib.h>
 
// Creating the structure
struct student {
    char name[80];
    int age;
    float percentage;
};
 
// Creating the structure object
struct student* emp = NULL;
 
// Driver code
int main()
{
    // Assigning memory to struct variable emp
    emp = (struct student*)
        malloc(sizeof(struct student));
 
    // Assigning value to age variable
    // of emp using arrow operator
    emp->age = 18;
 
    // Printing the assigned value to the variable
    printf("%d", emp->age);
 
    return 0;
}

                    

C++

// C++ program to show Arrow operator
// used in structure
#include <iostream>
using namespace std;
 
// Creating the structure
struct student {
    char name[80];
    int age;
    float percentage;
};
 
// Creating the structure object
struct student* emp = NULL;
 
// Driver code
int main()
{
   
    // Assigning memory to struct variable emp
    emp = (struct student*)
        malloc(sizeof(struct student));
 
    // Assigning value to age variable
    // of emp using arrow operator
    emp->age = 18;
 
    // Printing the assigned value to the variable
    cout <<" "<< emp->age;
 
    return 0;
}
 
// This code is contributed by shivanisinghss2110

                    

Javascript

// JavaScript program to show Arrow operator used in structure
let emp = null;
 
// Creating the structure
class Student {
    constructor(name, age, percentage) {
        this.name = name;
        this.age = age;
        this.percentage = percentage;
    }
}
 
// Assigning memory to struct variable emp
emp = new Student('', 0, 0);
 
// Assigning value to age variable
// of emp using arrow operator
emp.age = 18;
 
// Printing the assigned value to the variable
console.log(' ' + emp.age);

                    

Output: 
18

 

Time complexity: O(1).

Auxiliary space: O(n). // n is the  size of memory that is being dynamically allocated using the malloc function to store the structure student. The amount of memory used is proportional to the size of the structure and the number

  • Arrow operator in unions:

C++

// C++ program to show Arrow operator
// used in structure
#include <iostream>
using namespace std;
 
// Creating the union
union student {
    char name[80];
    int age;
    float percentage;
};
 
// Creating the union object
union student* emp = NULL;
 
// Driver code
int main()
{
    // Assigning memory to struct variable emp
    emp = (union student*)
        malloc(sizeof(union student));
 
    // Assigning value to age variable
    // of emp using arrow operator
    emp->age = 18;
 
    // DIsplaying the assigned value to the variable
    cout <<""<< emp->age;
}
 
// This code is contributed by shivanisinghss2110

                    

C

// C program to show Arrow operator
// used in structure
 
#include <stdio.h>
#include <stdlib.h>
 
// Creating the union
union student {
    char name[80];
    int age;
    float percentage;
};
 
// Creating the union object
union student* emp = NULL;
 
// Driver code
int main()
{
    // Assigning memory to struct variable emp
    emp = (union student*)
        malloc(sizeof(union student));
 
    // Assigning value to age variable
    // of emp using arrow operator
    emp->age = 18;
 
    // DIsplaying the assigned value to the variable
    printf("%d", emp->age);
}

                    

Output: 
18

 


Last Updated : 20 Mar, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads