Re: Stroustrup 5.9, exercise 1
On Mar 30, 7:42 pm, "Alf P. Steinbach" <a...@start.no> wrote:
* arnuld:
// a reference to an array of 10 integers
char& r_arr_int = arr_int;
What you have above is a reference to char, initialized with an array of
integers.
Apples on one side, oranges on the other side.
This is a reference to an array:
int (&r_arr_int)[10] = arr_int;
it does not compile:
---------- PROGRAMME -------------
/* Stroustrup, 5.9, exercises
to write declarations with initializers.
comments explain what we intend to do.
*/
#include<iostream>
int main()
{
// a pointer to a character
char c1 = 'a';
char* pc1 = &c1;
// an array of 10 integers
const int arr_size = 10;
char arr_int[arr_size];
// a reference to an array of 10 integers
int (&r_arr_int)[arr_size] = arr_int;
// a pointer to an array of character strings
/* SORRY but i do not know how to present an array
of character strings */
// a pointer to a pointer to a char
char c;
char* pc = &c;
char* ppc = pc;
// a constant integer
const int ci = 7;
// a pointer to a constant integer
const int* pci = &ci;
// a constant pointer to an integer
int j = 8;
int *const cpi = &j;
return 0;
}
-------- OUTPUT ----------
[arch@voodo tc++pl]$ g++ 5.9_ex-01.cpp
5.9_ex-01.cpp: In function 'int main()':
5.9_ex-01.cpp:24: error: invalid initialization of reference of type
'int (&)[10]' from expression of type 'char [10]'
[arch@voodo tc++pl]$