C++ multiple type assignment

I not very familiar with C++, have some issues with the multiple assignments
int a = 0, b = 0;

int i;
double d;
char c;
c = i = d = 42;

also works
but why this does not works.
int a = 4, float b = 4.5, bool ab = TRUE;

C++ determine size of array

The title might seem it’s a duplicate question. Not sure if it actually is.
Consider the code below:
# include <iostream>

size_t arrSize(const int* arr)
return *(&arr+1)-arr;

void foo(int* arr)
std::cout << …