How to understand following single and double quotes terminology in C/C++? : Help me understand the following:

    cout<<'a' prints a and it's okay but
    cout<<'ab' prints 24930 but I was expecting an error due to term 'ab' having two character in single quote
    cout<<'a'+1 prints 98 
    cout<<"ab" prints ab and it's okay but
    cout<<"ab"+1 prints b, why?
    cout<<"a"+1 prints nothing ?
    cout<<'a'+'b' prints 195 ?
    cout<<"a"+"b" gives error ?
Please help me to understand all these things in details. I am very confused. I would be very thankful.