What is Array Tag?
Array tag allows you to store values with single memory and read elements as an array. Array Tag only points out the first element of the object.
Can we assign a different address to an Array tag?
It is not possible to assign a different address to an array tag.
We cannot assign an assignment operator to the Array Tag of that object. It can be achieved only with a pointer. We can assign a different address with the help of a pointer.
What happens if we assign a different address to Array tag?
If we assign different addresses to the array tag it can’t read the addresses of that tag. So it will not read all the addresses in the array tag.
Declaration:
int a[10];
int *pa = &a[0]
It assigns the memory address of a[0] to a pointer of type int. This type of declaration needs to be done to store different addresses but in the case of an array tag, it allows to store a set of values with a single timestamp and single quality and then read the elements back individually or as an array.
An Alternate way to assign different address to Array tag:
On retrieval, if specify only the tag name, then all elements are returned with the declaration, “ArrayTagName [ ArrayIndex ]” but different addresses storing is not possible with the array tag.
However, you can use a pointer variable to point to the array, and then assign a different address to the pointer variable. This would change the address of that the pointer points to, but not the address of that the array itself. Here’s an example:
C++
#include <iostream> using namespace std; int main() { // define an array of integers int arr[5] = {1, 2, 3, 4, 5}; // declare a pointer variable and initialize it to point to the first element of the array int * ptr = arr; cout << "Address of array: " << arr << endl; cout << "Address of pointer: " << ptr << endl; // assign a new address to the pointer variable, pointing to the fourth element of the array ptr = &arr[3]; cout << "Address of pointer after reassignment: " << ptr << endl; return 0; } // This code is contributed by akashjha412 |
C
#include <stdio.h> int main() { // define an array of integers int arr[5] = {1, 2, 3, 4, 5}; // declare a pointer variable and initialize it to point to the first element of the array int * ptr = arr; printf ( "Address of array: %p\n" , ( void *)arr); printf ( "Address of pointer: %p\n" , ( void *)ptr); // assign a new address to the pointer variable, pointing to the fourth element of the array ptr = &arr[3]; printf ( "Address of pointer after reassignment: %p\n" , ( void *)ptr); return 0; } // This code is contributed by akashjha412 |
Java
import java.io.*; // Nikunj Sonigara public class GFG { public static void main(String[] args) { // Define an array of integers int [] arr = { 1 , 2 , 3 , 4 , 5 }; // Declare a reference variable and // initialize it to point to the first element of the array int [] ptr = arr; System.out.println( "Address of array: " + arr); System.out.println( "Address of pointer: " + ptr); // Assign a new reference to the reference variable, // pointing to the fourth element of the array ptr = new int [] {arr[ 3 ]}; System.out.println( "Address of pointer after reassignment: " + ptr); } } |
Python3
# Define an array of integers arr = [ 1 , 2 , 3 , 4 , 5 ] # Declare a pointer variable and initialize it to point to the first element of the array ptr = arr # Print the address of the array and the pointer print ( "Address of array:" , id (arr)) print ( "Address of pointer:" , id (ptr)) # Assign a new address to the pointer variable, pointing to the fourth element of the array ptr = arr[ 3 ] # Print the address of the pointer after reassignment print ( "Address of pointer after reassignment:" , id (ptr)) |
C#
using System; class Program { static void Main() { // Define an array of integers int [] arr = { 1, 2, 3, 4, 5 }; // Output the address of the array Console.WriteLine($ "Address of array: {GetHashCode(arr)}" ); // Output the address of the pointer (index) int index = 0; Console.WriteLine($ "Address of pointer: {GetHashCode(arr[index])}" ); // Reassign the index to point to the fourth element of the array index = 3; // Output the updated address of the pointer (index) Console.WriteLine($ "Address of pointer after reassignment: {GetHashCode(arr[index])}" ); } // Get hash code of an object static int GetHashCode( object obj) { return obj.GetHashCode(); } } |
Javascript
// Define an array of integers const arr = [1, 2, 3, 4, 5]; // Declare a reference variable and // initialize it to point to the first element of the array let ptr = arr; console.log( "Address of array: " + arr); console.log( "Address of pointer: " + ptr); // Assign a new reference to the reference variable, // pointing to the fourth element of the array ptr = [arr[3]]; console.log( "Address of pointer after reassignment: " + ptr); |
Address of array: 0x7ffcf999f600 Address of pointer: 0x7ffcf999f600 Address of pointer after reassignment: 0x7ffcf999f60c
Related Articles:
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!