title: data type char and its value range mentioned as 0-255
body: <p>I was looking at the data types at the link <a href="https://www.tutorialspoint.com/cprogramming/c_data_types.htm" rel="nofollow noreferrer">data type</a></p>
  
  <p>It is written as char type is   1 byte  having a range -128 to 127 or 0 to 255.</p>
  
  <p>How can this possible? By default <code>char</code> means signed right. 
  <a href="https://i.stack.imgur.com/21p7M.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/21p7M.jpg" alt="enter image description here"></a></p>
  
  <p>Edit: There is another question <a href="https://stackoverflow.com/questions/32007039/whats-wrong-with-this-c-code">Whats wrong with this C code?</a>. But it is not same question. Title says what is wrong with this code and search will not list this answer easily. One has to analyse the question fully to understand the issue.</p>
  
  <p>Edit: After looking at several answers and comments, I got another doubt. Strings within double quotes are treated as char. I get warnings if I pass double quoted strings to a function having parameter of type signed char. Also itoa and many other library functions make use of char type parameter and not signed char. Ofcourse typecasting will avoid this problem. So what is the best parameter type  for functions manipulating null terminated strings(for example LCD display related functions)? Use signed char or unsigned char (since char is implementation defined, it may not be portable I guess)</p>