#include <iostream>

int main()
{
    char name[] = "Hello" ; // | 'H' | 'e' | 'l' | 'l' | 'o' | '/0' |
    // name is an array of six chars

    // &name is the address of the array of six chars
    std::cout << &name << '\n' ;

    const char* pc = &( name[0] ) ;
    // pc is a pointer to the char at position zero ('H')

    // prints out the null terminated c-string "Hello"
    std::cout << pc << '\n' ;

    const void* pv = pc ;
    // pv contains the address pc (address of the char at position zero)

    // prints out the address of char 'H' in the array
    std::cout << pv << '\n' ;

    // print out every char in the array along with its address
    for( int i = 0 ; i < sizeof(name) ; ++i )
    {
        char c = name[i] ;
        const void* pv = &( name[i] ) ;
        if( c != 0 ) std::cout << "char " << c << " is at address " << pv << '\n' ;
        else std::cout << "null charater is at address " << pv << '\n' ;
    }
}
