confusing mixing datat type in c++
<p>I am trying to figure out what is happening this code</p>

<pre><code>int i = 10, j = 7, l;
unsigned int k;
double q = 3.56;
char c;

c = q * i * j;
l = c;
std::cout &lt;&lt; l &lt;&lt; "\n"; // result is -7
std::cout &lt;&lt; c &lt;&lt; "\n"; // result is ?
</code></pre>

<p>I couldn't understand why l result is '7', and for the c whatever i change the value i, j the result for c is always '?'. Could anyone point me a reason about that ? Thanks</p>
